sortir des varibles d un backtest

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #32075 quote
    Paris
    Participant
    Veteran
    // Navigator Trading System based on ProRealTime 10.3
    // The algo based on the statistical advantage of the TDOM (trading day of the month) idea around the turn of the month
    // Version 1
    // Instrument: DAX mini 1 EUR, 4H, 9-17 CET, 1 point spread, account size 10.000 Euro
    
    // ProOrder code parameter
    DEFPARAM CUMULATEORDERS = true // cumulate orders
    
    // define TDOM days
    ONCE tradingDaySell = 1
    ONCE tradingDayBuy = 8
    
    // define intraday trading window
    ONCE timeSell = 90000
    ONCE timeBuy = 170000
    
    // define position and money management parameter
    ONCE positionSize = 1
    ONCE maxPositionSizeLong = 10
    ONCE maxPositionSizeShort = 10
    
    ONCE minSizeLong = 1
    ONCE midSizeLong = 5
    ONCE maxSizeLong = 10
    ONCE maxSizeShort = -10
    
    ONCE stopLossLong = 8.5 // in %
    ONCE takeProfitLong = 3 // in %
    ONCE stopLossShort = 3.75 // in %
    ONCE takeProfitShort = 1 // in %
    
    // define position multiplier for each month (>0 - long / <0 - short / 0 - no trade)
    ONCE longJanuary = 0
    ONCE shortJanuary = maxSizeShort
    ONCE longFebruary = 0
    ONCE shortFebruary = maxSizeShort
    ONCE longMarch = maxSizeLong
    ONCE shortMarch = 0
    ONCE longApril = minSizeLong
    ONCE shortApril = 0
    ONCE longMay = minSizeLong
    ONCE shortMay = maxSizeShort
    ONCE longJune = minSizeLong
    ONCE shortJune = 0
    ONCE longJuly = midSizeLong
    ONCE shortJuly = maxSizeShort
    ONCE longAugust = 0
    ONCE shortAugust = maxSizeShort
    ONCE longSeptember = 0
    ONCE shortSeptember = maxSizeShort
    ONCE longOctober = midSizeLong
    ONCE shortOctober = maxSizeShort
    ONCE longNovember = midSizeLong
    ONCE shortNovember = maxSizeShort
    ONCE longDecember = midSizeLong
    ONCE shortDecember = maxSizeShort
    
    // calculate TDOM
    IF Month <> Month[1] THEN
    tradingDay = 0
    ENDIF
    IF Time = 90000 THEN
    IF CurrentDayOfWeek > 0 AND CurrentDayOfWeek < 6 THEN
    tradingDay = tradingDay + 1
    ENDIF
    ENDIF
    
    // set montly multiplier
    IF CurrentMonth = 1 THEN
    monthlyMultiplierLong = longJanuary
    monthlyMultiplierShort = shortJanuary
    ELSIF CurrentMonth = 2 THEN
    monthlyMultiplierLong = longFebruary
    monthlyMultiplierShort = shortFebruary
    ELSIF CurrentMonth = 3 THEN
    monthlyMultiplierLong = longMarch
    monthlyMultiplierShort = shortMarch
    ELSIF CurrentMonth = 4 THEN
    monthlyMultiplierLong = longApril
    monthlyMultiplierShort = shortApril
    ELSIF CurrentMonth = 5 THEN
    monthlyMultiplierLong = longMay
    monthlyMultiplierShort = shortMay
    ELSIF CurrentMonth = 6 THEN
    monthlyMultiplierLong = longJune
    monthlyMultiplierShort = shortJune
    ELSIF CurrentMonth = 7 THEN
    monthlyMultiplierLong = longJuly
    monthlyMultiplierShort = shortJuly
    ELSIF CurrentMonth = 8 THEN
    monthlyMultiplierLong = longAugust
    monthlyMultiplierShort = shortAugust
    ELSIF CurrentMonth = 9 THEN
    monthlyMultiplierLong = longSeptember
    monthlyMultiplierShort = shortSeptember
    ELSIF CurrentMonth = 10 THEN
    monthlyMultiplierLong = longOctober
    monthlyMultiplierShort = shortOctober
    ELSIF CurrentMonth = 11 THEN
    monthlyMultiplierLong = longNovember
    monthlyMultiplierShort = shortNovember
    ELSIF CurrentMonth = 12 THEN
    monthlyMultiplierLong = longDecember
    monthlyMultiplierShort = shortDecember
    ENDIF
    
    // all in if buy day is Monday or Thuesday
    IF tradingDay = tradingDayBuy AND ( CurrentDayOfWeek = 1 OR CurrentDayOfWeek = 2 ) THEN
    monthlyMultiplierLong = maxSizeLong
    ENDIF
    
    // caculate current position profit
    posProfit = (((close - positionprice) * pointvalue) * countofposition) / pipsize
    
    // open long position with order cumulation
    l1 = tradingDay = tradingDayBuy
    l2 = tradingDay > tradingDayBuy AND posProfit < 0
    
    IF ( (l1 OR l2) AND Time = timeBuy) THEN
    // check monthly setup and max position size
    IF monthlyMultiplierLong > 0 THEN
    IF (COUNTOFPOSITION + (positionSize * monthlyMultiplierLong)) <= maxPositionSizeLong THEN
    BUY positionSize * monthlyMultiplierLong CONTRACT AT MARKET
    ENDIF
    ELSIF monthlyMultiplierLong <> 0 THEN
    IF (COUNTOFPOSITION + positionSize) <= maxPositionSizeLong THEN
    BUY positionSize CONTRACT AT MARKET
    ENDIF
    ENDIF
    
    stopLoss = stopLossLong
    takeProfit = takeProfitLong
    ENDIF
    
    // sell short if valid month or close position only
    s1 = tradingDay = tradingDaySell
    
    IF ( s1 AND Time = timeSell ) THEN
    // check monthly setup and max position size
    IF monthlyMultiplierShort < 0 THEN
    IF (COUNTOFPOSITION + (positionSize * ABS(monthlyMultiplierShort))) <= maxPositionSizeShort THEN
    SELLSHORT positionSize * ABS(monthlyMultiplierShort) CONTRACT AT MARKET
    ENDIF
    ELSIF monthlyMultiplierShort <> 0 THEN
    IF (COUNTOFPOSITION + positionSize) <= maxPositionSizeShort THEN
    SELLSHORT positionSize CONTRACT AT MARKET
    ENDIF
    ELSIF monthlyMultiplierShort = 0 THEN
    SELL AT MARKET
    ENDIF
    
    stopLoss = stopLossShort
    takeProfit = takeProfitShort
    ENDIF
    
    
    
    // stop and profit management
    SET STOP %LOSS stopLoss
    SET TARGET %PROFIT takeProfit
    
    
    a=close-(close*(stopLoss/100))
    b=close+(close*(takeProfit/100))
    
    
    graph a as "stopLoss"
    graph b as "takeProfit"
    graph countofposition
    
    #32076 quote
    Paris
    Participant
    Veteran

    ci dessus le code du navigator . c est un code de backtest , et ce que j aimerais faire c est de sortir les varibles

    stopLoss takeProfit grace a la fonction graph et de l afficher dans une fenetre afin

    de suivre et de controler la position visuellement . comme vous pouvez le voir j ai fait une tentative mais cela ne fonctionne pas . si quelqu un a une idee …

     
    #32081 quote
    Paris
    Participant
    Veteran

    en plus clair j aimerais avoir

    deux indicateurs

    un qui renvoit :

    SET STOP %LOSS stopLoss

    et un autre qui renvoit :

    SET TARGET %PROFIT takeProfit

    #32082 quote
    Paris
    Participant
    Veteran

    @ nicolas , peut tu supprimer le deuxieme message . Merci .

    #33771 quote
    Paris
    Participant
    Veteran

    bon je suis passe par le formulaire de pro real time pour demander de l aide sur ce petit soucis .

     

    Malheureusement  cela n a pas abouti

     

    Nous avons récemment reçu de très nombreuses sollicitations pour ce service gratuit de programmation.
    En conséquence nous ne sommes momentanément plus en mesure de prendre en charge de nouvelles demandes d’aide à la programmation.

    Afin d’obtenir une assistance à la programmation, je vous suggère de re-soumettre votre demande en passant par l’une des deux solutions proposées ci-dessous :

    Contactez notre partenaire ProRealCode.com qui propose un service d’aide à la programmation personnalisé – En savoir plus

    Demandez de l’aide à la communauté : notre partenaire ProRealCode.com propose un forum d’entraide dédié à la programmation via lequel vous pourrez bénéficier de l’aide d’autres utilisateurs de ProRealTime – Accéder au Forum

    Cordialement,

     

    bon la je ne sait plus quoi faire …..

    #33775 quote
    JC_Bywan
    Moderator
    Master

    Pour clarifier le langage et être sûr de comprendre, quand tu dis que tu veux 2 indicateurs, je suppose que tu ne parles pas d’indicateurs de pro-builder mais que tu veux bien dire que tu veux juste voir 2 variables stoploss et takeprofit dans la fenêtre réservée aux variables visionnées par graph?

    Je vais supposer que oui, et si c’est bien ça, les lignes 167 et 168 devraient afficher ces valeurs en les modifiant comme suit:

    graph stopLoss as "stopLoss"
    graph takeProfit as "takeProfit"

    Reste une ambiguité en l’absence de copie écran du backtest, quand tu dis “ça ne fonctionne pas”, tu veux dire que c’est le backtest qui ne fonctionne pas car aucune fenêtre graph n’apparait? Ou bien que c’est ton affichage de a et b qui fonctionne mais ne donne pas ce que tu attendais et que tu cherches soit à débuguer a et b soit à afficher autre chose tel que ci-dessus?

    #33777 quote
    Paris
    Participant
    Veteran

    Pour clarifier le langage et être sûr de comprendre, quand tu dis que tu veux 2 indicateurs, je suppose que tu ne parles pas d’indicateurs de pro-builder mais que tu veux bien dire que tu veux juste voir 2 variables stoploss et takeprofit dans la fenêtre réservée aux variables visionnées par graph?

     

    oui oui oui

     

    Reste une ambiguité en l’absence de copie écran du backtest, quand tu dis “ça ne fonctionne pas”, tu veux dire que c’est le backtest qui ne fonctionne pas car aucune fenêtre graph n’apparait? Ou bien que c’est ton affichage de a et b qui fonctionne mais ne donne pas ce que tu attendais et que tu cherches soit à débuguer a et b soit à afficher autre chose tel que ci-dessus?

     

    si  si le backtest fontionne parfaitement . la fenetre supplementaire apparait bien et j ai pu y afficher d autres variables que celles voulues  .

    la on est davantage sur comment est calculé le stop et le take profit que sur un bug technique , ou comment l afficher .

    #33778 quote
    Paris
    Participant
    Veteran

    je voudrait en somme avoir par la , une espece de monitoring en temps reel ( 4 heures ) du stop et take profit .

    #33779 quote
    Paris
    Participant
    Veteran

    j ai un peu cherché sur le site et en dehors et rien trouve , surtout que la fonction graph est plutot recente .

     

    je reste en ligne jusqua minuit …

    #33781 quote
    JC_Bywan
    Moderator
    Master

    Ok, alors j’ai pas testé le code, mais s’il s’agit de débugguer le calcul de a et b des lignes 163 et 164, je l’aurais pas fait avec “close”, qui va changer à chaque fois qu’on change de bougie, mais (là c’est juste pour info parce que ça va pas aller) mais avec “tradeprice” pour avoir le niveau fixe du dernier in si le cumul des ordres était désactivé:

    https://www.prorealcode.com/documentation/tradeprice/

    mais comme le cumul est activé (ligne 7), il vaut sans doute mieux passer par positionprice qui tiendra compte de l’accumulation de positions de même sens:

    https://www.prorealcode.com/documentation/positionprice/

    D’autre part puisque le code semble aussi bien acheter que shorter, le calcul de a sera différent selon qu’on est call (stop dessous positionprice) ou selon qu’on est short (stop au-dessus de positionprice), l’inverse pour b

    Peut-être que Nicolas a déjà répondu à ce genre de question, je n’ai pas cherché avec l’outil de recherche si ce topic a déjà été vu pour gapher plus vite ce que tu veux avoir.

    Je déconnecte pour aujourd’hui, à demain.

    #33784 quote
    Paris
    Participant
    Veteran

    ok merci pour ta reponse .

    Je vais voir ce qu tu proposes .

    abonne toi , au cas ou ça marcherait pas .

    Je vais peut etre envoyer un mail a nicolas , je voulais pas l embeter pour si peu .

     

    a+

Viewing 11 posts - 1 through 11 (of 11 total)
  • You must be logged in to reply to this topic.

sortir des varibles d un backtest


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Paris @ladefense Participant
Summary

This topic contains 10 replies,
has 2 voices, and was last updated by Paris
8 years, 10 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 04/14/2017
Status: Active
Attachments: No files
Logo Logo
Loading...