Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 59

 
Vitalie Postolache:
Es sind die Zitate, sie sind von schlechter Qualität.

Der Standard-Expert Advisor passt gut zu ihnen. Und mit einem Demokonto funktioniert der Handel auch nicht. Meine Trades lassen sich nicht öffnen. Obwohl sie das sollten.

 
Michail_David:

Der Standardprüfer ist mit ihnen zufrieden

Vergleichen Sie den Standard Expert Advisor und Ihren Expert Advisor, stellen Sie Unterschiede fest und ziehen Sie Schlussfolgerungen. Der Wortlaut des Fehlers deutet jedoch auf eine schlechte Qualität der Zitate hin, wenn die Werte der einen TF nicht mit den Werten der anderen TF übereinstimmen.

Wenn dieser Code für den Handel im Modus " nur offene Kurse" geschrieben wird, kann dieses Problem vermieden werden.

Hinzugefügt. Sie versuchen gerade, einen Code nach offenen Preisen zu erstellen, es ist nicht klar, warum er nach allen Ticks getestet werden sollte...
 
Vitalie Postolache:
Vergleichen Sie die Norm und Ihre eigene, stellen Sie die Unterschiede fest und ziehen Sie Schlussfolgerungen. Sie können diesem Missgeschick entgehen, wenn der Code für den Handel im Modus " nur offene Kurse" geschrieben ist.
Die Standardvariante verwendet ebenfalls Schlusskurse, genau wie meine
 
Michail_David:
Der Standardcode verwendet auch Schlusskurse, so wie ich

Welchen EA bezeichnen Sie als Standard? Ich habe in der Lieferung des Terminals keinen EA "zuSchlusskursen" gesehen.

Und bei offenen Kursen müssen Sie entweder den gesamten Handelscode in diesem Modus arbeiten lassen, oder es gar nicht tun. Nur ein Teil des Codes wird bei einem neuen Balken verwendet, der Rest funktioniert bei jedem Tick.

 
Vitalie Postolache:

Welchen EA bezeichnen Sie als Standard? Ich habe in der Lieferung des Terminals keinen EA "zuSchlusskursen" gesehen.

Und bei offenen Kursen müssen Sie entweder den gesamten Handelscode in diesem Modus arbeiten lassen, oder Sie lassen es ganz bleiben. Sie haben nur einen Teil des Codes für einen neuen Balken verwendet, der Rest wird bei jedem Tick funktionieren.

Die MACD-Probe wird als Standard bezeichnet. Wäre es besser, die Suche nach einer neuen Leiste an den Anfang zu verschieben?
 
Michail_David:
Ich würde es als eine Standard-MACD-Probe bezeichnen. Würden Sie die Suche nach einer neuen Leiste besser an den Anfang verschieben?

Wo in der MACD-Probe ist der Modus "nur offene Preise", ich sehe ihn nicht? Es ist besser, die Suche nach einem neuen Balken an den Anfang von OnTick() zu verschieben.

Und es ist

static datetime New_Time=TimeCurrent();// Время текущего бара

besser außerhalb der Funktion, auf globaler Ebene, deklariert werden.

Oder besser noch, nehmen Sie sich etwas Zeit und suchen Sie nach besseren Möglichkeiten für die Suche nach einer neuen Leiste im Forum.
 
Vitalie Postolache:

Wo in der MACD-Probe ist der Modus "nur offene Preise", ich sehe ihn nicht? Es wäre besser, die Suche nach einem neuen Balken an den Anfang von OnTick() zu verschieben.

И

static datetime New_Time=TimeCurrent();// Время текущего бара

ist es besser, sie außerhalb der Funktion, auf globaler Ebene, zu deklarieren.

Ich muss den Modus"nur offene Kurse" des Standard-Expert Advisors falsch verstanden haben. Ich entschuldige mich dafür. Ich fange gerade erst an, es zu verstehen. Vielen Dank für die Tipps. Können Sie den gesamten Code einsehen? Vielleicht gibt es noch weitere Kommentare. Ich brauche wirklich einen neuen Blick. Ich wäre Ihnen sehr dankbar dafür.
 
Michail_David:
Leute, ein Hinweis. Tester gibt Fehler: 2017.02.08 18:24:43.751 TestGenerator: Nicht übereinstimmende Datenfehler (Tiefstwert 1.09860 am 2016.07.27 19:30 wird vom niedrigsten Zeitrahmen nicht erreicht, Tiefstpreis 1.09880 stimmt nicht überein)
Was bedeutet das und wie kann es behoben werden? Was habe ich falsch gemacht?
double Margin_Percent=AccountFreeMargin()*Percent/100; //Используемые средства для открытия ордеров
double Lots=Margin_Percent/MarketInfo(Symbol(),MODE_MARGINREQUIRED);//Определение общего количества лотов
double Lots_Volume=(MathFloor(Lots)+MarketInfo(Symbol(),MODE_LOTSTEP));
double MacdCurrent=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,1); //Параметры MACD основной линии текущего бара
double MacdPrevious1=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,2);//Параметры MACD основной линии предыдущего бара
double MacdPrevious2=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,3);//Параметры MACD основной линии со смещением на 2 бара
double StopLoss=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,0);//Параметры Трейлинг стоп по параметрам ParabolicSAR текущего бара
double Previous_StopLoss=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,1);//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
double CurrentPSAR=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,1);//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  
//------
  }
//-------------------------------------------------------------------------------------------------------
Dies ist das erste Mal, dass ich sehe, dass Variablenberechnungen global außerhalb von ereigniserzeugenden Funktionen durchgeführt werden und der Compiler nicht einmal flucht? Verdammt noch mal, der Compiler macht keinen Fehler.
 
Sergey Gritsay:
Das ist das erste Mal, dass ich gesehen habe, dass Variablenberechnungen global außerhalb von ereigniserzeugenden Funktionen durchgeführt werden, und der Compiler beschwert sich nicht einmal?
Nein. Sie akzeptiert alles, wie es ist.
 
Michail_David:
Nein. Es wird alles so akzeptiert, wie es ist.
alles, was ich hervorgehoben habe, in die Funktion OnTick() einfügen