[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 579

 

Duplicherò la mia domanda in questo thread - non riesco a trovarla nell'altro thread :(

Per favore consigliatemi:

1.come funziona l'EA se c'è stata un'interruzione della connessione?

2. Ricomincerà la funzione init()?

3. Come posso usare l'evento "old tick" nel log di EA?

 

1. Dipende dall'EA, se la logica prevede il suo arresto, smetterà di funzionare, altrimenti si metterà a scalpitare per un po'... controlla tu stesso lunedì, avvia l'EA e tira il cavo di alimentazione e vedrai...

2. no, l'init non funzionerà, tutto partirà dall'inizio, quindi pianificate un'interruzione della connessione - salvate il tempo dell'ultimo avvio dell'EA, e se c'è stato un ritardo tra i due avvii, fate una chiamata all'init

3. scrivere una funzione che legga le ultime righe del registro per questo evento

 
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);
  }
//+------------------------------------------------------------------+


Quindi solo la linea centrale è disegnata, ma le linee superiore e inferiore non sono disegnate.

 
keekkenen >>:


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


OK

più sul 3° punto per favore, i primi due non ho domande

grazie

 
trader_fx >>:

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

Mettete il riempimento del buffer Buf_3 in un ciclo separato.
 
IgorM >>:


OK

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

спс

Non l'ho fatto, ma la soluzione non dovrebbe essere troppo complicata, dato che non puoi ottenere i log nella tua lingua, devi ottenere il file e leggerlo usando WinAPI,

forse c'è una soluzione più semplice...

 
keekkenen >>:

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


è strano che le capacità di mql non permettano di leggere i log del terminale

Non sembra esserci un problema di connettività, c'è una funzione su cui dovremo costruire un blocco di controllo.

bool IsConnected(

)

 

Buon pomeriggio. Sto cercando di capire come scrivere un EA in mql4. Per cominciare, ho preso l'esempio suggerito dal tutorial: Simple Expert Advisor. Ecco il link: https://c.mql4.com/book/mq4/experts/tradingexpert.mq4

Quando ho provato a testarlo su RTS futures (piattaforma Broco) attraverso Strategy Tester, ho ottenuto un risultato interessante - i trade positivi sono considerati come "negativi" - con cosa ha a che fare?

Non ho cambiato nulla nel codice, ho solo impostato SP e TP in OrderSend per essere "0" per fare un'inversione pura senza prendere profitto allo stop e take.


 
Non sono un esperto di futures, ma ho una domanda: avete preso in considerazione lo spread?
 

Non so molto di forex. In effetti, le azioni e i futures non hanno spread nel mazzo delle quotazioni, ma non so come funziona in MetaTrader (ho appena guardato nelle proprietà dei simboli in MT, spread = 0). Non ha cambiato nulla nell'algoritmo, tranne SP = TP = 0, come viene preso in considerazione lo spread?

Motivazione: