Der Unterschied zwischen MQL- und EL-Code!
3 Antworten
eastpeace
vor 7 Jahren #115293
Version:SQ 3.8.1 (Was für eine harte Zeit! SQ3 ohne festes Update und die Veröffentlichung von SQ4 ohne Zeitplan)
Zurück zu diesem Thema, ich finde, dass es wenig Unterschied zwischen mql und el übersetzten Code. Welcher ist genau?
SQs Pseudocode
==================================================================== == Eingabebedingungen ==================================================================== LongEntryCondition = ((WMA(145) kreuzt unter SMA(3)) und (Low(10) > Lowest(53))) ShortEntryCondition = ((WMA(145) kreuzt über SMA(3)) und (High(10) < Highest(53)))
EL-Code
if(MaxTradesPerDay = 0 oder EntriesToday(Date) Average(Close,3)[1]) und (WAverage(Close,145)[0] Lowest(Low, 53+0))); if(LongEntryCondition = true) then begin
MT4s Code
// EINTRITTSVORSCHRIFTEN // LONG: ((WMA(145) kreuzt unter SMA(3)) und (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); } }
Niedrig[10] in EL bedeutet:
Also, der Pseudo-Code, el-Code, mt4-Code: low(10), low[9], low[10]. Sind sie gleich?
eastpeace
vor 7 Jahren #138035
Und die Gewinnkurve oder die Equity-Linie im SQ-Backtest und im MC sind sehr unterschiedlich.
Ich habe die str-Datei hochgeladen, bitte überprüfen Sie dies. Danke!
Mark Fric
vor 7 Jahren #138037
Die Unterschiede in EasyLanguage sind korrekt, denn in EL wird die Bedingung am Ende des Balkens geprüft, während sie in MT4 am Anfang des Balkens geprüft wird.
Was die Unterschiede zwischen SQ und MC betrifft, verwenden Sie die gleichen Daten?
Mark
StrategyQuant Architekt
eastpeace
vor 7 Jahren #138048
Nein, die Daten sind ähnlich, stammen aber aus unterschiedlichen Quellen. Vielleicht ist es das Problem meiner Backtest-Software.
Aber ich habe noch eine andere Frage.
Die Short-Exit-Bedingung lautet wie folgt
-- Short-Ausgang wenn MarketPosition Short ist { wenn (Bars Since Entry >= 42) { Position zum Markt schließen; } wenn (Tiefstwert(11) kreuzt unter WMA(86)) { Position am Markt schließen; } }
el code:
// Ausstiegsregel ShortExitCondition = ((Tiefst(Tief, 11+1) > WAverage(Close,86)[1]) und (Tiefst(Tief, 11+0) <= WAverage(Close,86)[0]));
Ich denke, der richtige Code ist :
// Ausstiegsregel
NiedrigsterWert = NiedrigsterWert(Niedrig, 11);
ShortExitCondition = (( LowestValue[1] > WAverage(Close,86)[1]) und ( LowestValue <= WAverage(Close,86)[0]));
Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)