Erreur sur prise de position ???
Forums › ProRealTime forum Français › Support ProOrder › Erreur sur prise de position ???
- This topic has 6 replies, 2 voices, and was last updated 4 years ago by Fantasio2020.
-
-
04/28/2020 at 9:54 PM #128734
Bsr la communauté,
depuis quelques jours j’analyse le code de mes stratégies sur graphique…. je suis vraiment novice en programmation PRT, mais lorsque je contrôle sur les graphiques les ordres passé par le bot, j’ai l’impression qu’il y a des erreurs par rapport aux conditions dans les prises de positions.
ci-dessous un exemple:
je joins le code afin que vous puissiez effectuer vos propre test et d’avoir des précisions sur le pourquoi de cette situation:
DAX en M1
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899/ Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé//DEFPARAM FLATBEFORE = 091500//DEFPARAM FLATAFTER = 154500daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Moyenne Mobile et MACDMMA = (ExponentialAverage[9](high)[1]*1.00001)MMB = (ExponentialAverage[21](high)[3]*1.00003)MMC = (MACDline[8,24,8](low))MMD = (ExponentialAverage[9](MACDline[8,24,8](low)))// Inverse Transform RSIInd = RSI[9](Close)x = 0.1 * (Ind - 50)y = (EXP (2 * x) - 1) / (EXP (2 * x) + 1)z = 50 * (y + 1)// Conditions pour ouvrir une position acheteusec1a = close > MMAc2a = MMA CROSSES OVER MMBc3a = MMA > MMBc4a = MMC > MMDc5a = z CROSSES OVER 53IF (c1a AND c2a AND c3a AND c4a AND c5a) AND not daysForbiddenEntry THENBUY 1 SHARES AT MARKETSET TARGET %PROFIT 1.35ENDIF// Conditions pour fermer une position acheteuseif onmarket and barindex-tradeindex <=1 and (MMA CROSSES UNDER MMB) thenSELL AT MARKETendif// Conditions pour ouvrir une position en vente à découvertc1b = open < MMAc2b = MMA CROSSES UNDER MMBc3b = MMA < MMBc4b = MMC < MMDc5b = z CROSSES UNDER 47IF (c1b AND c2b AND c3b AND c4b AND c5b) AND not daysForbiddenEntry THENSELLSHORT 1 SHARES AT MARKETSET TARGET %PROFIT 1.35ENDIF// Conditions pour fermer une position vendeuseif onmarket and barindex-tradeindex <=1 and (MMA CROSSES OVER MMB) thenSELL AT MARKETendif//************************************************************************//trailing stop functiontrailingstart = 8 //trailing will start @trailinstart points profittrailingstep = 12 //trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF//************************************************************************//Stops et objectifsSET STOP %LOSS 2//SET TARGET %PROFIT 1.15//************************************************************************le bot n’est pas censé ouvrir une position short à cet endroit…..MMA est supérieur à MMB, pourtant il short quand même.
si quelqu’un peut m’apporter des éléments de réponses, je suis preneur.
Merci d’avance pour les explications
Slts
04/29/2020 at 9:14 AM #128774Pour débugger un code, il faut commencer par grapher ses booléens (ici ceux utiliser pour ouvrir ta position de short) :
1GRAPH (c1b AND c2b AND c3b AND c4b AND c5b)si il retourne 1 (logiquement), alors vérifier chacune des valeurs, ici tes moyennes mobiles:
1234graphonprice MMAgraphonprice MMBgraphonprice MMCgraphonprice MMDpour vérifier leurs concordances avec les valeurs des EMA appliquées sur ton graphique, je pense que ton problème vient de celles-ci.
04/29/2020 at 12:25 PM #128804Bonjour Nicolas,
le problème vient du décalage verticale appliqué sur MMA et MMB.
le % de décalage appliqué à MMA et MMB ne concorde pas avec le décalage verticale appliqué aux moyennes mobiles (indicateur sur le graphique)
***j’ajuste en modifiant le paramètre***
as tu une idée pour quelles raison la valeur donnée au code (*1.00001 et 1.00003) ne coincide pas avec le meme incrément appliqué à l’indicateur moyenne mobile sur le graphique (ema9 et 21))
slts
04/29/2020 at 12:28 PM #128807Je pense que le décalage est en valeur prix (close) et non celui de la EMA en question, soit EMA+close*facteur (à vérifier toutefois).
Le mieux c’est de coder un simple indicateur et de comparer avec la version de la plateforme.
04/29/2020 at 1:04 PM #128813Lorsque je n’applique pas de correction verticale, ne n’ai pas de problème….les courbes s’aligne.
04/29/2020 at 1:21 PM #12881704/29/2020 at 9:07 PM #128887Merci Nicolas!
En effet c’est déjà mieux
-
AuthorPosts
Find exclusive trading pro-tools on