[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 579

 

Ich werde meine Frage in diesem Thread duplizieren - im anderen Thread hatte ich kein Glück :(

Bitte beraten Sie mich:

1. wie funktioniert der EA bei einer Verbindungsunterbrechung?

2. die Funktion init() erneut gestartet wird?

3) Wie kann ich das Ereignis "alter Tick" im EA-Protokoll verwenden?

 

1. hängt vom EA ab, wenn die Logik das Anhalten vorsieht, wird er aufhören zu arbeiten, andernfalls wird er für eine Weile tuckern... überprüfen Sie es selbst am Montag, starten Sie den EA und ziehen Sie das Stromkabel und Sie werden sehen...

2. nein, das Init wird nicht funktionieren, alles wird von vorne beginnen, also planen Sie eine Verbindungsunterbrechung ein - speichern Sie die Zeit des letzten Starts des EA, und wenn es eine Zeitspanne zwischen den beiden Starts gab, machen Sie einen Aufruf an das Init

3. eine Funktion schreiben, die die letzten Zeilen des Protokolls für dieses Ereignis liest

 
SergNF >>:


Вы заполняете массив, а потом на него натравливаете "стандартный индикатор" (RSIOnArray, CCIOnArray и т.п. - около 7 штук).

Крайнее упоминание на форуме , а вообще F1, учебник и т.п.


//+------------------------------------------------------------------+
//|                                                    onArrayBB.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 SeaGreen
#property indicator_color2 SeaGreen
#property indicator_color3 SeaGreen
#property indicator_color4 SeaGreen

extern int maper = 14;
extern int bbper = 14;

double Buf_0[],Buf_1[],Buf_2[],Buf_3[];
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexBuffer(0,Buf_0);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(1,Buf_1);
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(2,Buf_2);
SetIndexStyle (2,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(3,Buf_3);

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   int i,Counted_bars;
   Counted_bars=IndicatorCounted();
   i=Bars-Counted_bars-1;
   while(i>=0)
   {
      Buf_3[i]=iMA(Symbol(),0,maper,0,MODE_SMA,PRICE_CLOSE,i);
      Buf_0[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,0,i);
      Buf_1[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,1,i);
      Buf_2[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,2,i);
      Print(Buf_0[0]);
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+


Es wird also nur die mittlere Linie gezeichnet, aber die obere und untere Linie werden nicht gezeichnet.

 
keekkenen >>:


3. напишите функцию, которая бы читала из лога последние строки на предмет этого события


OK

mehr zum 3. Punkt bitte, zu den ersten beiden habe ich keine Fragen

danke

 
trader_fx >>:

Правильно?, Так только средняя отрисовывается, а верхняя и нижняя линии не отрисовываются.

Legen Sie das Füllen des Puffers Buf_3 in eine separate Schleife.
 
IgorM >>:


OK

про 3-й пункт плз подробнее, первые два у меня вопросов не возникает

спс

Ich habe es nicht getan, aber die Lösung sollte nicht zu kompliziert sein, da Sie die Protokolle nicht in Ihrer eigenen Sprache erhalten können, sondern die Datei abrufen und mit WinAPI lesen müssen,

vielleicht gibt es eine einfachere Lösung...

 
keekkenen >>:

..решение не должно быть сложным, т.к. родным языком логи не достать..


Es ist seltsam, dass die mql-Fähigkeiten das Lesen von Terminalprotokollen nicht erlauben

Es scheint kein Problem mit der Konnektivität zu geben, es gibt eine Funktion, auf der wir einen Prüfblock aufbauen müssen.

bool IsConnected(

)

 

Guten Tag. Ich versuche zu verstehen, wie man einen EA in mql4 schreibt. Für den Anfang habe ich das vorgeschlagene Beispiel aus dem Tutorial genommen: Simple Expert Advisor. Hier ist der Link dazu: https://c.mql4.com/book/mq4/experts/tradingexpert.mq4

Als ich versuchte, es auf RTS-Futures (Broco-Plattform) durch Strategy Tester zu testen, erhielt ich ein interessantes Ergebnis - positive Trades werden als "negativ" betrachtet - was hat das damit zu tun?

Ich habe nichts am Code geändert, ich habe nur SP und TP in OrderSend auf "0" gesetzt, um eine reine Umkehrung ohne Gewinnmitnahme bei Stop und Take durchzuführen.


 
Ich bin kein Futures-Experte, aber ich habe eine Frage: Haben Sie den Spread berücksichtigt?
 

Ich weiß nicht viel über Devisen. In der Tat haben Aktien und Futures keinen Spread im Kursdeck, aber ich weiß nicht, wie das im MetaTrader funktioniert (ich habe gerade in den Symboleigenschaften im MT nachgesehen, Spread = 0). Ich habe nichts am Algorithmus geändert, außer SP = TP = 0, wie wird die Spanne berücksichtigt?