Versione beta del libro online sulla programmazione MQL4 - di Sergey Kovalev (SK.) - pagina 8

 
Climber:
Cosa c'è di sbagliato qui? Cosa si grida agli errori?

Il compilatore dà un errore: Start function not found and cannot be run, che significa: funzione start() non trovata e non eseguibile.

Questo è abbastanza naturale. Se non c'è una funzione speciale nel programma, non può essere eseguito nel terminale client MT.

 
Ecco un errore La funzione "GetExtremumZZZBar" non è referenziata e sarà rimossa dal file exp (beh, è chiaro, la funzione non è usata da nessuna parte). Ho scritto un commento nel codice che ho aggiunto, dopo di che gli errori sono scomparsi.

//+------------------------------------------------------------------+
//|                                                         1111.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
}    // Добавил вот эту скобку, точнее переместил с конца, в результате 1 ошибка
int GetExtremumZZBar(string sym="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) {
  if (sym=="") sym=Symbol();
  double zz;
  int    i, k=iBars(sym, tf), ke=0;
 
  for (i=1; i<k; i++) {
    zz=iCustom(sym, tf, "ZigZag", dp, dv, bc, 0, i);
    if (zz!=0) {
      ke++;
      if (ke>ne) return(i);
    }
  }
  Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден");
  return(0);
}   
//----
   
//+------------------------------------------------------------------+
Mentre scrivevo questo messaggio, mi sembrava di aver capito il mio problema. La funzione non dovrebbe essere nel corpo della funzione di avvio. Solo la chiamata di questa funzione dovrebbe essere nel corpo dell'inizio. Giusto?
 
Climber:
 
Mentre scrivo questo post, penso di aver capito il mio problema. La funzione non dovrebbe essere nel corpo della funzione di avvio. Solo la chiamata di questa funzione dovrebbe essere nel corpo dell'inizio. Giusto?

 
Climber:
Mentre scrivo questo post, penso di aver capito il mio problema: la funzione non dovrebbe essere nel corpo della funzione start. Solo la chiamata di questa funzione dovrebbe essere nel corpo dell'inizio. Giusto?

Corretto. Nessuna funzione può essere descritta nel corpo di un'altra funzione.
 
Climber:
Mentre scrivo questo post, penso di aver capito il mio problema: la funzione non dovrebbe essere nel corpo della funzione start. Solo la chiamata di questa funzione dovrebbe essere nel corpo dell'inizio. Giusto?
Sì, date un'occhiata qui: MQL4 Tutorial Struttura del programma MQL4.
 
È sorta una nuova domanda))
È necessario per un EA multivaluta aprire i grafici di tutti i simboli utilizzati?
Se arriva un tick per il simbolo al cui grafico è collegato l'EA, verranno controllati gli stessi criteri di trading per altri simboli. In questo caso, voglio utilizzare il multicurrency per aumentare il numero di ordini aperti durante il giorno. Non apriremo molti ordini perché lavoriamo con grafici orari, abbiamo ricevuto manualmente non più di due ordini di un simbolo al giorno.

E il mio prossimo spaventoso compito è scrivere un blocco di ordini contabili per l'Expert Advisor multivaluta. Ma sono contento che gli ordini pendenti non sono utilizzati nel mio Expert Advisor (almeno riduce il blocco della contabilità :)). Puoi suggerirmi di leggere qualcosa relativo alla contabilità multicurrency su questo argomento?
 
Climber:
Ho una nuova domanda))
È obbligatorio per un EA multivaluta aprire i grafici di tutti i simboli utilizzati?

No. Ma tutti i simboli utilizzati sono d.b. nella finestra di Market Watch.

 

Puoi dirmi come fermare un EA? Voglio che smetta di funzionare quando viene attivato uno stop loss. Se qualcuno può darmi un suggerimento, per favore scriva a mininp@list.ru. Grazie in anticipo!

 
Mister_X:

Puoi dirmi come fermare un EA? Voglio che smetta di funzionare quando viene attivato uno stop loss. Se qualcuno può darmi un suggerimento, per favore scriva a mininp@list.ru. Grazie in anticipo!


Forse è più facile non fermarsi, ma solo controllare se c'è un ordine di arresto e se c'è, non fare nulla
 
Ho trovato un grande articolo sulla contabilità degli ordini complessi da SK'Book orders in a large program'.
Attualmente sto lavorando manualmente sul mio conto demo. Ho lavorato manualmente su quest'ultimo sistema per circa un mese.

Ho iniziato con 1.000 di deposito e 1:100 di leva. La dimensione minima del lotto è sempre di 100 dollari. Lavoro con 3-4 coppie di valute. Durante le prime due settimane sono riuscito ad aumentare il mio deposito di 2 volte, cioè il mio deposito è diventato =2.000$. Ora sono circa 3000.

Durante questo periodo il profitto massimo è stato di 118 punti da uno strumento (da un ordine, ovviamente). In media chiudo gli ordini con un profitto di 40-50 punti. Per uno di questi ordini una coppia di ordini viene chiusa con stop con perdita totale vicino a 10 punti. 100 punti al giorno in totale da diversi strumenti. E questo non è meno di un aumento di 2 volte del deposito in un mese. E se si calcola con i reinvestimenti presi in considerazione, allora dopo 10 mesi il deposito sarà 1 milione 24 mila dollari USA.

Tutto sarebbe buono, dovremmo gioire, ma c'è una domanda ragionevole: quale società di intermediazione dà così sfacciatamente diventare popolare in 10 mesi con 1000 dollari???? .

Sto cercando di scrivere un Expert Advisor, dovrei fare trading da solo.

Devo essere onesto con voi, sto pensando a tutto questo evento, non è una truffa?
Motivazione: