Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 572

 
Boris.45:
Ciao, sto scrivendo un EA per MT5. Ho scritto un EA in MT5 che ho voluto utilizzare per cercare automaticamente i pattern necessari e aprire posizioni manualmente. Cioè non ci sono funzioni di trading nell'EA. Il mio problema è che non posso installare questo EA su un grafico. Non ha chiamate di indicatori. Tutti gli indicatori sono scritti nel programma. L'ho compilato e l'ho eseguito nel tester di strategia. Non ci sono stati problemi. Ho appena messo l'EA sul grafico e gli ho permesso di fare trading sullo schermo, nelle impostazioni e nella finestra EA che appare. Invece della faccina sorridente sul grafico, l'icona dell'Expert Advisor appare sul grafico dei prezzi e un cerchio verde con un triangolo bianco al suo interno. Ho provato questa procedura diverse volte e ho ottenuto gli stessi risultati. Ho cambiato periodo sul grafico del prezzo, il messaggio di OnDeinit() appare sul monitor, cioè una candela viene elaborata nel programma e il lavoro si ferma.

Ho dato un'occhiata al diario di bordo:

- Uno dei tentativi di installare un EA è risultato in un messaggio di cambiamento di profilo;

- In tutti gli altri tentativi l'EA viene caricato senza problemi.

Lavoravo con i Profili: aumentavo il numero di Profili, impostavo diversi grafici su ogni Profilo. Se c'era qualcosa di sbagliato lì, purtroppo non lo so. Non so cosa deve essere rotto perché il programma dia un messaggio di cambio di profilo. Anche se è possibile che il fallimento sia dovuto a qualche altra ragione. Non mi è chiaro.

Per motivi di test, ho creato un nuovo EA (template) oggi e non ho scritto nulla nelle funzioni OnInit(), OnDeinit(const int reason), OnTick() e ho provato a mettere questo EA sul grafico e permettere il trading.

Ho la stessa situazione di prima.

Per favore, aiutatemi ad affrontare la situazione. Grazie !!!!!!

Guardiamoli uno per uno. Ecco il modello:

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//---
   
  }
//+------------------------------------------------------------------+

Allega il grafico e uno screenshot del grafico nello studio, così come le voci delle schede "Journal" e "Advisors" (se vi appaiono).

File:
Test.mq5  2 kb
 
Immagino che anche qui non ci siano professionisti. pity......
 
Mihail Marchukajtes:
Immagino che anche qui non ci siano professionisti. pity......
Quindi ristampare i valori di Momentum dal grafico di qualcun altro nel tester
 
Artyom Trishkin:
Quindi ristampare i valori di Momentum dal grafico di qualcun altro nel tester
La stampa mostra ciò che il buffer disegna. Non ci sono informazioni. Qualcuno può dare una risposta sensata???? Speculazione non incomprensibile....
 
Mihail Marchukajtes:
La stampa mostra ciò che il buffer disegna. Non ci sono informazioni. Qualcuno può dare una risposta sensata???? Non qualche oscura speculazione....
Quindi non dà nessuna informazione. Dov'è il tuo codice? O tutti qui sono sensitivi o qualcosa del genere? Allora dovresti andare al forum dei maghi del decimo grado...
 

Colleghi, potete dirmi come confrontare i parametri delle candele in un dato intervallo?

Come calcolare il valore massimo o minimo, lo capisco.

Ecco il codice:

void OnTick()

{

doppio H = 0;

for ( shift = Search_Period; shift >0; shift--)

{

se (High[shift] > H)

{ H = High[shift]; }

Allarme (H);

}

}

Ma il problema è che sovrascrive il valore della variabile.

Il mio obiettivo è trovare, per esempio, due o più candele con lo stesso valore di prezzo di High. In altre parole, nell'idea, dopo ogni iterazione dovrebbe essere creata una variabile che memorizzerà il valore, poi un'altra, e così via, fino a quando l'intero intervallo è controllato. E poi potranno essere confrontati ulteriormente.

Ma non ho idea di come farlo ((.

 
Andrey Koldorkin:

Colleghi, potete dirmi come confrontare i parametri delle candele in un dato intervallo?

Come calcolare il valore massimo o minimo, lo capisco.

Ecco il codice:

...............


Ma il problema è che sovrascrive il valore della variabile.

E il mio scopo è quello di trovare, per esempio, due o più candele con lo stesso valore di prezzo di High. Cioè, nell'idea, dopo ogni iterazione, dovrebbe essere creata una variabile che memorizzerà il valore, poi un'altra, e così via, fino a quando l'intero intervallo è controllato. E poi potranno essere confrontati ulteriormente.

Ma non ho idea di come farlo ((

Sembra così:

//+------------------------------------------------------------------+
//|                                                     TestCopy.mq4 |
//|              Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link      "https://login.mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Search_Period=100;  // Количество копируемых High
int searchPeriod=(Search_Period<1)?1:Search_Period;
double mass_high[][2];        // массив значений High и их времени
MqlRates array[];             // Массив для копирования Open, High, Low, Close, Time
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period()));
   if(CopyRates(Symbol(),PERIOD_CURRENT,1,copy_bars,array)>0) {
      double H=0;
      int size_h=0;
      for(int i=0; i<copy_bars; i++) {
         if(array[i].high>H) {
            H=array[i].high;
            size_h++;
            ArrayResize(mass_high,size_h);
            mass_high[size_h-1][0]=H;
            mass_high[size_h-1][1]=(int)array[i].time;
            }
         }
      }
   for(int i=0; i<ArrayRange(mass_high,0); i++) {
      printf("Время: %s, High: %.5f",TimeToString((int)mass_high[i][1],TIME_DATE|TIME_MINUTES),mass_high[i][0]);
      }
  }
//+------------------------------------------------------------------+
 
come scrivere due consiglieri diversi in uno?
 
Сергей Зырянов:
come si fa a mettere due diversi EA in uno solo?
A cosa sei interessato? Tu copi il codice da un EA all'altro, ma devi copiarlo correttamente, se non capisci come farlo, ordinalo ai freelance.
 
Artyom Trishkin:

Va più o meno così:

Cercherò di capirlo. Grazie.

Motivazione: