Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 457

 
un po' sbagliato nella descrizione all'inizio ...dovrebbe disegnare se si chiude in 1/3
 
Ragazzi, è già uscito l'aggiornamento?
 
Ho una domanda sugli indicatori con stocastico ai livelli 20 e 80. O MACD con livello 0.
quindi la domanda è come prendere il valore dell'indicatore quando è sotto 20 o sopra 80, la linea principale e la linea di segnale.O attraversato dietro questi livelli.valori dell'indicatore, penso di avere, ma poi cosa fare con loro non so.

Stoh=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,0);
StohSignal=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,0)

Macd=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_MAIN,0);
MacdSignal=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_SIGNAL,0);
 
denis77515:
Signori programmatori, spiegare pliz indicatori stocastici hanno livelli 20, 80. O MACD con livello 0.
Penso di aver ottenuto il valore dell'indicatore, ma non so cosa farci.

Stoh=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,0);
StohSignal=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,0);

Macd=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_MAIN,0);
MacdSignal=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_SIGNAL,0);


Guida allo studio

anche se probabilmente è troppo tardi, stiamo aggiornando oggi.

esempio dal tutorial

//--------------------------------------------------------------------
// grafobjects.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start()                            // Спец. функция start
  {
//--------------------------------------------------------------- 1 --
   int Sit;
   double MACD_M_0,MACD_M_1,           // Главная линия, 0 и 1 бар
   MACD_S_0,MACD_S_1;                  // Сигнальная линия, 0 и 1 бар
   string Text[4];                     // Объявление строков. массива
   color  Color[4];                    // Объявление массива цветов

   Text[0]= "Открытие Buy";            // Текст для различных ситуаций
   Text[1]= "Открытие Sell";
   Text[2]= "Удерживаем Buy";
   Text[3]= "Удерживаем Sell";

   Color[0]= DeepSkyBlue;              // Цвет объекта ..
   Color[1]= LightPink;                // .. для различных ситуаций
   Color[2]= Yellow;
   Color[3]= Yellow;
//--------------------------------------------------------------- 2 --
   ObjectCreate("Label_Obj_MACD", OBJ_LABEL, 0, 0, 0);// Создание объ.
   ObjectSet("Label_Obj_MACD", OBJPROP_CORNER, 1);    // Привязка угол
   ObjectSet("Label_Obj_MACD", OBJPROP_XDISTANCE, 10);// Координата Х
   ObjectSet("Label_Obj_MACD", OBJPROP_YDISTANCE, 15);// Координата Y
//--------------------------------------------------------------- 3 --
   MACD_M_0 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);  // 0 бар
   MACD_S_0 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);// 0 бар
   MACD_M_1 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);  // 1 бар
   MACD_S_1 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);// 1 бар
//--------------------------------------------------------------- 4 --
   // Анализ ситуации 
   if(MACD_M_1<MACD_S_1 && MACD_M_0>=MACD_S_0)// Персеч. снизу вверх
      Sit=0;
   if(MACD_M_1>MACD_S_1 && MACD_M_0<=MACD_S_0)// Персеч. сверху вниз
      Sit=1;
   if(MACD_M_1>MACD_S_1 && MACD_M_0>MACD_S_0) // Главная выше сигн.
      Sit=2;
   if(MACD_M_1<MACD_S_1 && MACD_M_0<MACD_S_0) // Главная ниже сигн.
      Sit=3;
//--------------------------------------------------------------- 5 --
   // Изменение свойств объекта
   ObjectSetText("Label_Obj_MACD",Text[Sit],10,"Arial",Color[Sit]);
//--------------------------------------------------------------- 6 --
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 7 --
int deinit()                           // Спец. функция deinit
   {
   ObjectDelete("Label_Obj_MACD");     // Удаление объекта
   return;                             // Выход из deinit()
   }
//--------------------------------------------------------------- 8 --
 
double close_price(int nomer_bara)
{
if(nomer_bara<1)
{
Alert("нельзя анализировать текущий бар");
}
else
{
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3)//возвращает 1/3 если цена текущего бара закрылась ниже 1/3 его спреда 
{
return(1/3);
}
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3&&(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)*2)/3)//возвращает 2/3 если цена текущего бара закрылась ниже 2/3 и выше 1/3 его спреда 
{
return(2/3);
}

if((iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>(iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))*2)/3&&iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))//возвращает 1 если цена текущего бара закрылась выше 2/3 его спреда
{
return(1);
}
}

}

 if(close_price(1)==1/3)// в случае если цена закрылась внизу то нарисовать линию на этом баре
   {
 SetVLine(Red, "", Time[1], STYLE_SOLID, 2);
   }
и так вся проблема заключается в том что линия рисуется на каждом баре не пойму какого черта... помогите пожалуйста
la linea dovrebbe essere disegnata sulla barra dove il prezzo ha chiuso in basso, cioè 1/3 di barra
 

Ciao, sto per reinstallare Windows, ma quando sposto la cartella EAs sul disco rigido, gli EAs scritti di recente non ci sono più! Qualche consiglio su cosa fare?

*Non posso salvare il codice in un documento e poi ricrearlo, perché ce ne sono molti, e non voglio perdere dati a causa di un possibile fattore umano :)

 
Buongiorno, per favore aiutatemi! Il programmatore che ha scritto l'Expert Advisor è scomparso... ho dovuto finirlo io stesso... Ho dovuto riscriverlo io stesso, e ho ancora una funzione da implementare. Il mio Expert Advisor sta lavorando su rotture di livelli di supporto e resistenza + livelli Fibo come secondo segnale, rispettivamente, in Fibo. Come risultato, ottengo un segnale, ma non ha funzionato a causa di alcune restrizioni o non abbastanza punti per impostare il Take Profit minimo. Si prega di aiutare, consigliare o lanciare link a advisor.... Sto cercando una restrizione per entrare nel commercio. Per comprare il prezzo deve rompere il livello solo dal basso verso l'alto, e per vendere dall'alto verso il basso. Grazie mille in anticipo!!!!!
 

Ragazzi, per favore aiutatemi, c'è una funzione che restituisce il lotto dell'ultimo ordine aperto (che non è ancora chiuso). Puoi modificarlo per restituire il lotto del penultimo ordine aperto (anche non ancora chiuso)? Basta farlo senza usare gli array...

double FindLastLots (int otype)
{
  double oldopenprice,oldlots;
  int oldticket;
  
  ticket = 0;
  
  for (int i = OrdersTotal()-1; i>=0; i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) 
    {
      if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
      {
         oldticket = OrderTicket();
         if (oldticket>ticket)
         {
            oldlots = OrderLots();
            ticket = oldticket; 
         } 
      }  
    }
  }
  return (oldlots);
}
 
Trader7777:

Ragazzi, per favore aiutatemi, c'è una funzione che restituisce il lotto dell'ultimo ordine aperto (che non è ancora chiuso). Puoi modificarlo per restituire il lotto del penultimo ordine aperto (anche non ancora chiuso)? Solo farlo senza usare gli array...

Anche qui non ci sono array. Il codice non è molto affidabile. Stai cercando l'ultimo nella lista degli ordini aperti. IMHO, legarsi a questo non è molto affidabile. Il modo più affidabile per trovare l'ultimo ordine aperto è il suo tempo di apertura (è il più basso di tutti)
 
C'è un modo complicato per chiamare la linea di tendenza con un tasto di scelta rapida?