Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 368

 
msl271170: Insegna come fermare l'Expert Advisor e avviarlo quando appare una nuova candela.

c'è un esempio di Moving Average.mq4 Expert Advisor nel terminale - ha questo:

//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;

L'ho visto in un altro:

datetime LastTime;  // Время начала тика для побарного режима
void OnTick()
{
  if (Time[0] == LastTime) return;
  LastTime = Time[0];
........
}
 
msl271170: Ho capito che MT5 ha un linguaggio di programmazione diverso. Il mio codice non funzionerà lì?

Usa MT4Orders - libreria per MetaTrader 5

 

Sto cercando di capire CopyTime, ma non capisco perché DayData[] non si compila (voglio vedere la data arrotondata al giorno intero). Ho aggiunto un esempio qui sotto, se qualcuno nota un errore, per favore lo faccia notare o lo corregga:

datetime Data[3]={D'2017.09.22 08:05',D'2017.09.22 10:05',D'2017.09.22 12:05'};
int count=0;
datetime DayData[];
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   count++;
   
   if(count<4)
     {
      int copied=CopyTime(NULL,PERIOD_D1,Data[count-1],1,DayData);
      ArrayResize(DayData,count);
      Print("0 Data[",count-1,"]= ",Data[count-1]," DayData[count-1]= ",DayData[count-1]); // 1 control
     }

   for(int i=0; i<ArraySize(DayData);i++)
      Print("1 Data[",i,"]= ",Data[i]," DayData[i]= ",DayData[i]);  // 2 control

  }
//+------------------------------------------------------------------+
 

Un'intera pagina di messaggi vuoti (errore del forum). Ho dovuto cancellare.

 

Buona giornata a tutti voi!


Sto imparando gradualmente mql4 dal libro di Evgeniy Zhdanov.

Descrive un esempio di Envelopes, applicazione Zigzag.

Le funzioni iCustom e iEnvelopes sono descritte lì per ricevere i dati degli indicatori Envelopes e ZigZag.

Puoi consigliare dove trovare informazioni e conoscere i dati - che descrivere gli altri indicatori?

Forse c'è un link a una risorsa dove posso imparare quali funzioni sono descritte da quali indicatori?

O è tutto nell'aiuto?

Vi sono sinceramente grato in anticipo!

 
Список функций языка MQL4 - Справочник MQL4
Список функций языка MQL4 - Справочник MQL4
  • docs.mql4.com
Читает из файла типа CSV строку одного из форматов: "YYYY.MM.DD HH:MM:SS", "YYYY.MM.DD" или "HH:MM:SS" - и преобразует ее в значение типа datetime
 
Taras Slobodyanik:

vedere iRsi e iBands

https://docs.mql4.com/ru/function_indices


Grazie mille!


Ho preso la mia attrezzatura subacquea e sono andato a fare un'immersione!

 

C'è anche questa domanda.

Viene prescritto il seguente Expert Advisor

Se lo ZigZag è inferiore a due Buste - aprire l'acquisto.

Se lo ZigZag è più grande di due Buste - apri Sell.

Poi, se un ordine è aperto da un EA - modifica l'ordine con così e così Take Stop e così e così Stop.

Non ci sono errori nella compilazione.

Ed ecco il problema, non importa come provo a testarlo, il tester della strategia apre sempre il primo ordine di acquisto che il tester si rifiuta ostinatamente di modificare. Inoltre, tutti gli ordini si aprono solo per Vendere, che sono perfettamente modificati e non causano alcun problema.

C'è qualche tipo di errore nel codice?

O è una caratteristica del tester? Inizio sempre con qualsiasi data che scelgo come "data di utilizzo" e il primo ordine di acquisto è sempre immodificabile. Poi tutti i miei ordini di vendita che sono modificati e funzionano bene.

Non ho ancora trovato alcuna informazione su questo.

Grazie per la vostra gentile attenzione!

 

Perché il tester produce risultati diversi con

extern bool Tral =true;

...

void OnTick()

{

    if (Tral)Trailing();....

e se Tral non viene spostato su variabili esterne, ma usa semplicemente la stessa funzione con le stesse variabili:

void OnTick()

{

   Trailing();


 
RichLux:

Perché il tester dà risultati diversi su ....

Prova :

input bool Tral =true;

... o hai davvero bisogno di extern?