Différence entre le code MQL et le code EL !
3 réponses
paix à l'est
Il y a 7 ans #115293
Version:SQ 3.8.1 (Quelle période difficile ! SQ3 sans mise à jour fixe, et la sortie de SQ4 sans calendrier)
Pour en revenir à ce sujet, je trouve qu'il y a peu de différence entre le code traduit en mql et en el. Lequel est le plus exact ?
Pseudo-code de la SQ
==================================================================== == Conditions d'entrée ==================================================================== LongEntryCondition = ((WMA(145) Crosses Below SMA(3)) And (Low(10) > Lowest(53))) ShortEntryCondition = ((WMA(145) Crosses Above SMA(3)) And (High(10) < Highest(53)))
Code EL
if(MaxTradesPerDay = 0 ou EntriesToday(Date) Average(Close,3)[1]) et (WAverage(Close,145)[0] Lowest(Low, 53+0))) ; if(LongEntryCondition = true) then begin
Code MT4
// RÈGLES D'ENTRÉE // LONG : ((WMA(145) Crosses Below SMA(3)) And (Low(10) > Lowest(53))) if(TradeLong) { bool LongEntryCondition = (((iMA(NULL, 0, 145, 0, MODE_LWMA, PRICE_CLOSE, 2) > iMA(NULL, 0, 3, 0, MODE_SMA, PRICE_CLOSE, 2)) && (iMA(NULL, 0, 145, 0, MODE_LWMA, PRICE_CLOSE, 1) getLowest(53, 1))) ; if(LongEntryCondition == true) { openPosition(1) ; } }
Low[10] dans EL signifie :
Donc, le pseudo-code, le code el, le code mt4 : low(10), low[9], low[10]. Sont-ils égaux ?
paix à l'est
Il y a 7 ans #138035
Et la courbe de profit ou la ligne d'équité dans le backtest SQ et MC sont très différentes.
J'ai téléchargé le fichier str, veuillez le vérifier. Merci de votre compréhension.
Mark Fric
Il y a 7 ans #138037
Les différences dans EasyLanguage sont correctes, car dans EL la condition est vérifiée à la fin de la barre, alors que dans MT4 elle est testée au début de la barre.
En ce qui concerne les différences entre SQ et MC, utilisez-vous les mêmes données ?
Marque
StratégieArchitecte de Quantités
paix à l'est
Il y a 7 ans #138048
NON, les données sont similaires, mais proviennent de sources différentes. Il s'agit peut-être d'un problème lié à mon logiciel de backtest.
Mais j'ai encore une autre question.
La condition de sortie courte est la suivante
-- Sortie de la position courte if MarketPosition is Short { if (Bars Since Entry >= 42) { Clôture de la position au marché ; } if (Lowest(11) Crosses Below WMA(86)) { Fermer la position au marché ; } }
code el :
// Règle de sortie ShortExitCondition = ((Lowest(Low, 11+1) > WAverage(Close,86)[1]) et (Lowest(Low, 11+0) <= WAverage(Close,86)[0])) ;
Je pense que le code correct est :
// Règle de sortie
Valeur la plus basse = Valeur la plus basse(Basse, 11) ;
ShortExitCondition = (( LowestValue[1] > WAverage(Close,86)[1]) et ( LowestValue <= WAverage(Close,86)[0]) ;)
Affichage de 3 réponses de 1 à 3 (sur un total de 3)