Fragen von einem "Dummy" - Seite 146

 
alph:

Hallo!

Hier habe ich ihn modelliert und für GBPUSD M30 angepasst.

Ich würde mich auch über eine Meinung, einen Kommentar und einen Ratschlag freuen.

Vielen Dank im Voraus.

Vielleicht:

Schlupf=20; // Schlupf

Einbeziehen in:

if(_Digits==4 || _Digits==2)
{
STP = STP/10;
TKP = TKP/10;

}

Sie ist zu groß für 4 Ziffern.

Ich habe es bei 2 Maklerfirmen ausprobiert und bin nicht zu einem positiven Ergebnis gekommen.

Vielleicht ist die Serverzeit anders als meine.

Welche Maklerfirma nutzen Sie?

 
pusheax:


Sie haben Recht, daran hatte ich gar nicht gedacht.

RFC DC

Serverzeit MSC-3

 
alph:

Hallo!

Hier habe ich ihn modelliert und für GBPUSD M30 angepasst.

Ich würde mich auch über eine Meinung, einen Kommentar und einen Ratschlag freuen.

Vielen Dank im Voraus.

Ich warf einen Blick darauf. Hier ist ein Blick darauf.

1.

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);
   return(true);
   }

Die letzte und vorletzte Zeile sind verwirrend. Was auch immer das Ergebnis des if()-Operators ist, er gibt true zurück. Welchen Sinn hat dieser Zustand dann? Das Gleiche gilt für timeOntrade2().

2. Bei der Verwendung der Funktion OrderSend() prüft der Programmierer weder den Erfolg noch den Rückgabecode result.retcode. Bisher sieht es so aus: Wenn eine Handelsanfrage gesendet wird, ist die Sache die gleiche :) Niemand kümmert sich darum, ob es funktioniert hat oder nicht.

 

 alph:

3) Wenn OnInit() nicht mindestens einen Indikator-Handle erhält, warum wird das Programm nicht einfach entladen?

 
Yedelkin:

Ich warf einen Blick in die Runde. Hier ist ein Blick darauf.

1.

Die letzte und vorletzte Zeile sind verwirrend. Was auch immer das Ergebnis des if()-Operators ist, er gibt true zurück. Welchen Sinn hat dieser Zustand dann? Das Gleiche gilt für timeOntrade2().

2. Bei der Verwendung der Funktion OrderSend() prüft der Programmierer weder den Erfolg noch den Rückgabecode result.retcode. Bisher sieht es so aus: Wenn eine Handelsanfrage gesendet wird, ist die Sache die gleiche :) Niemand kümmert sich darum, ob es funktioniert hat oder nicht.

Deshalb bitte ich Sie um Ihre Meinung und Ihren Rat. Ich verstehe die Vorgänge in mql nicht ganz, aber die Geschäfte werden auf diese Weise und zum richtigen Zeitpunkt eröffnet. Als ich es mit einem Zeitrahmen versuchte, funktionierte es nicht.
 
Yedelkin:

3) Wenn OnInit() nicht mindestens einen Indikator-Handle erhält, warum wird das Programm nicht einfach entladen?

Der Weg ist zuverlässig, aber nicht immer effektiv. Meiner Meinung nach ist es richtig, alle Fehler und Mängel der Initialisierung zu korrigieren, wenn möglich.
 
Yedelkin:

3) Wenn OnInit() nicht mindestens einen Indikator-Handle erhält, warum wird das Programm nicht einfach entladen?

Können Sie mir sagen, wie?
 
alph:
Deshalb bitte ich Sie um Ihre Meinung und Ihren Rat. Ich verstehe die mql-Prozesse nicht ganz, aber auf diese Weise werden Trades eröffnet, und zwar zum richtigen Zeitpunkt. Als ich es mit einem Zeitrahmen versuchte, bin ich gescheitert.

Ja, es ist "Meinung und Rat"! :) Ich sage nicht, dass der Kodex ein Flop ist, ich sage nur, dass es Zweifel daran gibt. Bitte schreiben Sie, was Sie codieren wollen - sie werden Ihnen dabei helfen.

Zur Funktion OrderSend(): Sehen Sie sich ihre Beschreibung an. Die Ergebnisvariable enthält die Antwort des Servers. Sie muss analysiert werden. Jeder analysiert sie auf seine eigene Art und Weise. Bitte fragen Sie nach, wenn etwas unklar ist.

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
 

alph:

Jedelkin : 3. Wenn OnInit() nicht in der Lage ist, mindestens einen Indikator-Handle zu erhalten, warum wird das Programm nicht einfach entladen?

Bitte sagen Sie mir, wie man das macht.

Sehen Sie sich die Beschreibung von OnInit() an. Sie besagt, dass, wenn die Funktion int OnInit() einen Rückgabewert ungleich Null zurückgibt, dies eine fehlgeschlagene Initialisierung bedeutet und das EreignisDeinit mit dem Grundcode REASON_INITFAILED erzeugt wird. Einfach ausgedrückt: Wenn OnInit() kein Indikator-Handle erhält, schreiben Sie return(-100) und der Experte beendet seine Arbeit. (Der Wert "-100" ist bedingt; jeder Wert ungleich Null ist ausreichend).

 
Yedelkin:

Ja, es ist "Meinung und Rat"! :) Ich sage nicht, dass der Kodex ein Flop ist; ich sage nur, dass es Zweifel gibt. Bitte schreiben Sie, was Sie codieren wollen - sie werden Ihnen dabei helfen.

Zur Funktion OrderSend(): Sehen Sie sich ihre Beschreibung an. Die Ergebnisvariable enthält die Antwort des Servers. Sie muss analysiert werden. Jeder analysiert sie auf seine eigene Art und Weise. Bitte fragen Sie nach, wenn etwas nicht klar ist.

Wenn der Kurs unter dem gleitenden Durchschnitt schließt und das Momentum unter dem Durchschnitt liegt, eröffnen wir das Geschäft zum Verkauf. Im Gegenteil zu kaufen.

"Ich habe keine Ahnung, was ich mit dieser Art von Code anfangen soll. Vielen Dank für die Tipps.