[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 21

 
forexnew:

Può scrivere zero divide, per quanto mi ricordo. Ma questo è dovuto al fatto che alcuni parametri non vengono ricalcolati. In altre parole, l'EA semplicemente non si avvia correttamente perché è stato avviato prima dell'inizio della sessione di lavoro.

Naturalmente, queste caselle di controllo sono state rimosse.

Se si verifica questo errore(divisione per zero), l'Expert Advisor smette di funzionare. Cercate un posto nel codice dove si verifica la divisione per zero - molto probabilmente, lo zero è ottenuto come risultato del calcolo di qualsiasi parametro.
 
Sì, grazie.
 

Ciao caro popolo di mql. Ecco il mio primo problema di codice.

È un indicatore di tendenza. Il compito è un indicatore di tendenza con coordinate 1a linea = massimo dell'ultimo giorno e del giorno prima e 2a linea = minimo dell'ultimo giorno e del giorno prima.

Sarebbe OK, ma quando si passa a un timeframe inferiore, la coordinata è aggrappata all'inizio della giornata, anche se al livello di prezzo corrispondente.... e il senso della linea si perde completamente.

Quando si crea un oggetto trendline, il parametro datetime è da biasimare. Non riesco a pensare come arrivarci. È necessario calcolare il tempo di formazione degli estremi di prezzo. Sembra che questa informazione

Sembra che questa informazione sia incorporata nel timeframe di 1 minuto e sto avendo un momento difficile qui. Come determinare l'orario in cui il timeframe cambia in modo che un trend sia ridisegnato e le coordinate siano attaccate alle barre corrispondenti agli estremi.

Sfortunatamente, la ricerca non ha prodotto nulla sull'argomento. Sarei felice di ricevere consigli.

 

Ho bisogno di visualizzare il comportamento del prezzo sull'intera storia dello strumento per MA, ma l'indicatore non viene disegnato quando viene inserito nel grafico.

Qual è il problema?

Quando compilato = 0 e 0.

A proposito - il terminale MT4 si blocca!

//--------------------------------------------------------------------
// separatewindow.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии

extern int History  =1000000;            // Колич.баров в расчётной истории
extern int Aver_Bars=1000000;             // Количество баров для расчёта

double Buf_0[];                     // Открытие индикаторного массива
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
   n,                               // Формальный параметр
   Counted_bars;                    // Количество просчитанных баров 
   double
   Sum_H,                           // Сумма значений High за переиод
   Sum_L;                           // Сумма значений Low  за переиод
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if (i>History-1)                 // Если много баров то ..
      i=History-1;                  // ..рассчитывать заданное колич.
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Sum_H=0;                      // Обнуление в начале цикла
      Sum_L=0;                      // Обнуление в начале цикла
      for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений 
        {
         Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
         Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
        }
      Buf_0[i]=(Sum_H-Sum_L)/Aver_Bars;// Знач. 0 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 

Sto scrivendo un EA con un ulteriore trasferimento di stop al Breakeven e un aumento del Breakeven. Tutto sembra funzionare, ma c'è solo un problema. Lo stop è saltato quando il prezzo si è mosso verso il Breakeven o il pareggio. Non posso risolvere questo problema.

Chi sa aiuta plz.

Ecco il codice:

int poz=OrdersTotal();
for (n=0;n<poz;n++){
            if (OrderSelect(n,SELECT_BY_POS,MODE_TRADES)==true){
            if (OrderType()==OP_BUY){
            Prise2=Bid-OrderOpenPrice();
            if(Prise2>(25*Point)){
            OrderModify(OrderTicket(),0,OrderOpenPrice(),OrderTakeProfit(),0,Blue);}
            if(Prise>Prise3){
            Prise3=(OrderOpenPrice()+(35*Point));
            SL2=OrderOpenPrice()+(10*Point);
            OrderModify(OrderTicket(),0,SL2,OrderTakeProfit(),0,Blue);}}
 
Vodya:

Sto scrivendo un EA con un ulteriore trasferimento di stop al Breakeven e un aumento del Breakeven. Tutto sembra funzionare, ma c'è solo un problema. Lo stop è saltato quando il prezzo si è mosso verso il Breakeven o il pareggio. Non posso risolvere questo problema.

Chi sa aiuta plz.

Ecco il codice:

Forse sono le staffe?
 
alex12:
Forse sono le staffe?

Quali? Se è dopo per allora non è la parte intera. Ho appena mostrato il codice per comprare, e c'è anche un codice per vendere.
 

aiuto per favore, l'ordine dovrebbe chiudere a 4 volte la distanza da high a orderopenprice

Dove ho sbagliato?

tutti gli ordini chiudono entro 3 pip dall'apertura

OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
if ((High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid&&OrderType()==OP_BUY&&OrdersTotal()>0)
 {
 OrderClose(OrderTicket(),OrderLots(),Bid,3);
 }
 
LazarevDenis:

aiuto per favore, l'ordine dovrebbe chiudere a 4 volte la distanza da high a orderopenprice

Dove ho sbagliato?

qui
(High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid
 
sergeev:
qui


Capitan Ovvio... e qualcuno può darmi un suggerimento?