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

 
Lo sanno tutti. IN MT4. C'è un tester di strategie. È possibile spingere l'enumerazione dei parametri, attraverso l'ottimizzazione.

La domanda è la seguente.

Possiamo spingere questa ottimizzazione, ricerca di parametri, nell'Expert Advisor? Se l'Expert Advisor ottimizza i parametri di volta in volta, seleziona quelli che sono redditizi e lavora con essi? Diciamo che ogni 7 giorni l'Expert Advisor ottimizza per 7 giorni. E parametri selezionati sulla redditività. E i gufi, già lavorano altri 7 giorni?

Voglio sentire la risposta, qualcuno che capisca questo. Diciamo la quantità di lavoro. La gravità del lavoro. eccetera. Di cosa si tratta.

 
Aleksey Radzisheuski:
Lo sanno tutti. IN MT4. C'è un tester di strategie. È possibile spingere l'enumerazione dei parametri, attraverso l'ottimizzazione.
La domanda è la seguente.
Possiamo spingere questa ottimizzazione, ricerca di parametri, nell'Expert Advisor? Se l'Expert Advisor ottimizza i parametri di volta in volta, seleziona quelli che sono redditizi e lavora con essi? Diciamo che ogni 7 giorni l'Expert Advisor ottimizza per 7 giorni. E parametri selezionati sulla redditività. E i gufi, già lavorano altri 7 giorni?

Voglio sentire la risposta, qualcuno che lo capisca. Diciamo la quantità di lavoro. La gravità del lavoro. eccetera. Di cosa si tratta.

Ecco l'articolo https://www. mql5.com/ru/articles/1467 ...

Автоматическая оптимизация торгового робота в процессе реальной торговли
Автоматическая оптимизация торгового робота в процессе реальной торговли
  • 2007.04.16
  • Igor Malcev
  • www.mql5.com
В статье описана и представлена библиотека функций, позволяющая проводить оптимизацию входных параметров советника, запуская оптимизацию непосредственно из советника.
 
Alekseu Fedotov:


Aveteuna linea di tendenza?

E visivamente va sopra (sotto) 0 bar, no, controlla la casella nelle proprietà, raggio.


La linea è una linea di tendenza. Ha cambiato le proprietà in un raggio. Non ha aiutato. Idealmente, voglio che il prezzo sia visualizzato indipendentemente dalla posizione della barra zero (in alto, in basso).

Anche questo codice non funziona.

int start() {

double pr=ObjectGetValueByShift("line",0);

Se (Bid==pr){

Alert (pr);}

return(0);}

 
Valerius:

Buon pomeriggio a tutti!

Domanda, su insta quando si cerca di inviare un ordine, dice che gli stop sono sbagliati.

Ecco la linea stessa:

OrderSend(Symbol(),OP_BUYSTOP,Lots,HiP,3,0,0,NULL,111,0,clrBlue);

Stop Loss e Take Points hanno 0. Se imposto un numero in Stop Loss, tutto è normale.

Non ho bisogno di Stop Loss. Cosa devo fare?

Questo non è un problema di StopLoss, ma del prezzo di apertura di un ordine pendente. Se il prezzo dell'ordine pendente è sbagliato, arriva l'errore 130.
 
Kot:


La linea è in tendenza. Ha cambiato le proprietà in un raggio. Non ha aiutato. Idealmente il prezzo dovrebbe essere visualizzato indipendentemente dalla posizione della barra dello zero (in alto, in basso).

Anche questo codice non funziona.

int start() {

double pr=ObjectGetValueByShift("line",0);

Se (Bid==pr){

Alert (pr);}

return(0);}


Hai digitato correttamente il nome della linea?

Provate questo script e mostrate cosa dice nei log.

void OnStart()
  {
     double pr;
     int obj_total=ObjectsTotal(); 
     string name;
     int i; 
     
   for(i=0;i<obj_total;i++) 
     { 
      name=ObjectName(i); 
      if(ObjectType(name)!=OBJ_TREND) continue; 
      PrintFormat("Объект %d:     Имя объекта - %s",i,name); 
      pr=ObjectGetValueByShift(name,0);
      PrintFormat("Объект %d:     Цена - %.5f",i,pr);
      
     } 
  }
 

Abbiamo un compito. I dati degli indicatori sui timeframe superiori sono richiamati nell'Expert Advisor iCustom. Chiamiamo le loro linee di supporto e resistenza.

Supponiamo le tre figure x1 x2 x3. Per favore, aiutatemi a scrivere un codice che disegni linee con queste tre figure direttamente in EA.

Ho provato ObjCreate (voglio che siano disegnati su un grafico come punti su ogni tick, ma non ha funzionato nulla)

Per chiarire, 3 linee separate. Si prega di non fare riferimento al tutorial di mql4. Basta condividere il codice di lavoro

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • 2011.03.28
  • MetaQuotes Software Corp.
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 
Artyom Trishkin:

In questo thread voglio iniziare ad aiutare coloro che vogliono veramente capire e imparare la programmazione nel nuovo MQL4 e vogliono passare facilmente a MQL5 - i linguaggi sono molto simili.

Questo sarà un buon posto per discutere i compiti, gli algoritmi della loro soluzione e qualsiasi altra domanda riguardante la programmazione MT.

Spero che altri utenti esperti del forum si uniscano alla discussione e che il ramo sia interessante per tutti.


Ecco il compito. All'iCustom Expert Advisor, chiameremo i dati degli indicatori che stanno sui timeframe superiori. Chiamiamo le loro linee di supporto e resistenza.

Supponiamo le tre figure x1 x2 x3. Per favore, aiutatemi a scrivere un codice che disegni linee con queste tre figure direttamente in EA.

Ho provato ObjCreate (voglio che siano disegnati su un grafico come punti suogni tick, ma niente ha funzionato)

Per chiarire, 3 linee separate. Non mi collegherei al primer mql4. Basta condividere il codice di lavoro

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • 2011.03.28
  • MetaQuotes Software Corp.
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 
BoBoforex:

Abbiamo un compito. I dati degli indicatori sui timeframe superiori sono richiamati nell'Expert Advisor iCustom. Chiamiamo le loro linee di supporto e resistenza.

Supponiamo le tre figure x1 x2 x3. Per favore, aiutatemi a scrivere un codice che disegni linee con queste tre figure direttamente in EA.

Ho provato ObjCreate (voglio che siano disegnati su un grafico come punti suogni tick, ma non ha funzionato nulla)

Per chiarire, 3 linee separate. Non mi collegherei al primer mql4. Basta condividere il codice che funziona.


La funzione

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.03.2008                                                     |
//|  Описание : Установка объекта OBJ_HLINE горизонтальная линия               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    st - стиль линии                (0  - простая линия)                    |
//|    wd - ширина линии               (1  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}

Mettetelo fuori dalla funzione void OnTick()

E questo è dentro void OnTick()

  SetHLine(clrRed,"x1",x1); 
  SetHLine(clrRed,"x2",x2);
  SetHLine(clrRed,"x3",x3);  
 

Per favore aiutatemi - non riesco a capire perché ottengo zero quando calcolo l'array VesMass nei valori i>0?

   int NumberTotal=3;
   int VesTotal=NumberTotal;//всего веслов в массиве
   double VesMass[];//массив с весами
   ArrayResize(VesMass,VesTotal);



   for(int i=0;i<VesTotal;i++)
     {
      if(i==0)
        {
         VesMass[i]=1;
         Print("VesMass ",i,"=",VesMass[i]);
        }
      if(i>0)
        {
         VesMass[i]=VesMass[i-1]*(4/5);
         Print("VesMass ",i-1,"=",VesMass[i-1]);
         Print("VesMass ",i,"=",VesMass[i]);
        }
     }
 
Alexey Viktorov:
Questo non è il problema dello Stop Loss ma del prezzo aperto dell'ordine pendente. Se il prezzo dell'ordine pendente non è corretto, l'errore è 130.


Ho provato a piazzare l'ordine pendente entro il doppio spread del prezzo. Solo allora l'errore scompare. Non capisco se questo è corretto?

Per esempio, l'ordine BUYSTOP è impostato a 60 punti di Bida. Anche TakeProfit non permette di essere impostato meno del valore dello spread.

Non capisco perché sia così. Non funziona sul conto reale ma funziona in modalità demo.

Motivazione: