Fragen von einem "Dummy" - Seite 222

 
TVA_11: Es befindet sich nicht im Terminal (Navigatorfenster). Dort sieht alles ganz normal aus, genauso wie vor der Kompilierung.

Berater

Berater

Beispiele

mehr...

Terminal => Strg+N (Navigator) => Öffnen Sie einen der Ordner (Indikatoren, Expert Advisors oder Scripts) => Suchen Sie nach dem Namen des gewünschten Programms.
 
TVA_11: https://www.mql5.com/ru/code/103 dieser Expert Advisor. Zuerst habe ich das erstellt, was ich in Expert Advisors habe. Dann habe ich den Programmtext dort eingefügt.

Haben Sie den Expert Advisor zunächst im Testprogramm ausgeführt?

TVA_11 : Keine einzige Transaktion in irgendeiner Variante. Was ist los?

Was steht in den Protokolldateien?

 

Es sieht so aus, als würde dieser Expert Advisor überhaupt nicht handeln.

Setzen Sie in von anderen, wo es von zwei beliebigen Bars, wo es geht, und es funktioniert.

Jetzt versuche ich herauszufinden, wie man richtig handelt.

Jeder Expert Advisor hat seinen eigenen Ansatz).

20_200 expert_v4.2_AntS.mq5

Ich versuche zu verstehen, wie sie funktioniert und ob sie korrekt gehandelt wird.

 
TVA_11:

...

Was nicht ein Experte ist, bekommen Sie Ihren eigenen Ansatz ).

...

Experten in Code Base nur als Beispiel für die Implementierung. Natürlich nicht immer von hoher Qualität und mit vollem Funktionsumfang. Alles, was darüber hinausgeht, müssen Sie entweder selbst machen oder bestellen.
 

Ich verstehe nicht den Sinn der Möglichkeit, in MetaEditor neue Codefenster zu öffnen(Kontextmenü => Neues Fenster). Wenn Sie eines der Fenster ändern, ändert sich das Gleiche im anderen.

In der Hilfe steht nur dies geschrieben:

  • Neues Fenster - öffnet eine Kopie der aktuellen Registerkarte in einem neuen Fenster. Dabei wird die Seriennummer der Kopie an den Namen der Registerkarte angehängt;

Wozu sind neue Fenster gut?

 

Hallo, kann jemand die win api erklären. Erstellt ein Dialogfeld, Funktion CreateDialog(). Warum wird die Fensterfunktion nicht atomar ausgeführt, selbst wenn ein kritischer Abschnitt verwendet wird?

INT_PTR CALLBACK DialogProc(HWND hWnd,
                            UINT uMsg,
                            WPARAM wParam,
                            LPARAM lParam)
{
        lock.LockObject();              // Далее нужно атомарное выполнение.
        MessageBoxA(NULL, "", "", MB_OK);               // При запуске программы, вылетает пачка сообщений (одновременно).
        lock.UnlockObject();    // Переводим в свободное состояние (критическая секция).

    return FALSE;
}
 

In den Standard-MC-Indikatoren haben wir !IsStoped() in for.

for(int i=pos;i<rates_total && !IsStopped();i++)

Können Sie mir sagen, warum das gemacht wird, wozu das gut ist?

 
paladin800:

Wenn die Schleife lang (oder andauernd) ist, wie kann sie unterbrochen werden, ohne den Terminalprozess zu beenden? Wenn der Benutzer den Befehl gegeben hat, das Skript aus dem Diagramm zu entfernen, wird die Funktion true zurückgeben (false vor diesem Ereignis). Infolgedessen werden die Bedingungen für nachfolgende Iterationen nicht erfüllt.

Ордерa, позиции и сделки в MetaTrader 5
Ордерa, позиции и сделки в MetaTrader 5
  • 2011.01.05
  • MetaQuotes Software Corp.
  • www.mql5.com
Надежный торговый робот не может быть создан без понимания механизмов работы торговой системы MetaTrader 5. Клиентский терминал получает от торгового сервера информацию о позициях, ордерах и сделках. Чтобы правильно обработать эти данные средствами MQL5 необходимо хорошо представлять как происходит взаимодействие mql5-программы и среды исполнения терминала.
 
220Volt:

Wenn die Schleife lang (oder andauernd) ist, wie kann sie unterbrochen werden, ohne den Terminalprozess zu beenden? Wenn der Benutzer den Befehl gegeben hat, das Skript aus dem Diagramm zu entfernen, wird die Funktion true zurückgeben (false vor diesem Ereignis). Infolgedessen werden die Bedingungen für nachfolgende Iterationen nicht erfüllt.

Okay, jetzt verstehe ich es. Ich habe es gerade mit MQL4 verglichen und konnte keinen Unterschied feststellen.

Frohes neues Jahr!

 

Bitte helfen Sie mir, senden Sie mir ein Beispiel, wie man mitORDER_TIME_SPECIFIED arbeitet, ich kann die Ablaufzeit einer Bestellung nicht richtig machen.

Hier ein Codeschnipsel

int need_year_AUDUSD=mqldt.year;
int need_mon_AUDUSD=mqldt.mon;
int need_day_AUDUSD=mqldt.day;
int need_hour_AUDUSD=mqldt.hour;
int need_min_AUDUSD=mqldt.min+15;
int need_sec_AUDUSD=mqldt.sec;
string need_year2_AUDUSD=IntegerToString(need_year_AUDUSD,0,' ');
string need_mon2_AUDUSD=IntegerToString(need_mon_AUDUSD,0,' ');
string need_day2_AUDUSD=IntegerToString(need_day_AUDUSD,0,' ');
string need_hour2_AUDUSD=IntegerToString(need_hour_AUDUSD,0,' ');
string need_min2_AUDUSD=IntegerToString(need_min_AUDUSD,0,' ');
string need_sec2_AUDUSD=IntegerToString(need_sec_AUDUSD,0,' ');
string date_AUDUSD=(need_year2_AUDUSD+".0"+need_mon2_AUDUSD+".0"+need_day2_AUDUSD+" "+need_hour2_AUDUSD+":"+need_min2_AUDUSD+":"+need_sec2_AUDUSD);
datetime b_AUDUSD=StringToTime(date_AUDUSD);


trade.BuyStop(0.1,SymbolInfoDouble(qwerty,SYMBOL_ASK)+D,qwerty,SymbolInfoDouble(qwerty,SYMBOL_ASK)+D-SL,SymbolInfoDouble(qwerty,SYMBOL_ASK)+D+TP,ORDER_TIME_SPECIFIED,b_AUDUSD);

es ist alles sehr schief, ich weiß, aber ich konnte zu einer bestimmten Zeit kein Beispiel finden, musste es selbst machen, jetzt wird es lästig und umständlich