Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 457

 
İlk başta anlatımda biraz hata yapmışım..1/3 te kapanırsa berabere çekmeli
 
Arkadaşlar güncelleme gelmedi mi?
 
Beyler programcılar, lütfen stokastik göstergelerin 20, 80 seviyelerine sahip olduğunu açıklayın. Veya seviye 0 ile MACD.
Yani soru, göstergenin 20'nin altında veya 80'in üzerindeyken değerinin nasıl alınacağı, ana ve sinyal çizgileri ya bu seviyelerin arkasında kesişiyor. Göstergelerin değerini almış gibiyim ama almıyorum. sonra onlarla ne yapacağını bil.

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

Macd=iMACD(Symbol(),PERIOD_H4,hızlı_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 :
Beyler programcılar, lütfen stokastik göstergelerin 20, 80 seviyelerine sahip olduğunu açıklayın. Veya seviye 0 ile MACD.
Yani soru, göstergenin 20'nin altında veya 80'in üzerindeyken değerinin nasıl alınacağı, ana ve sinyal çizgileri ya bu seviyelerin arkasında kesişiyor. Göstergelerin değerini almış gibiyim ama almıyorum. sonra onlarla ne yapacağını bil.

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

Macd=iMACD(Symbol(),PERIOD_H4,hızlı_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);


ders kitabını okuyoruz

muhtemelen geç olsa da, bugün güncelliyoruz

ders kitabı örneği

 //--------------------------------------------------------------------
// 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 );
   }
и так вся проблема заключается в том что линия рисуется на каждом баре не пойму какого черта... помогите пожалуйста
fiyatın altta kapandığı çubuğun üzerine çizgi çizilmelidir, yani çubuğun 1/3'ü
 

Merhaba! Windows'u yeniden yükleyeceğim, ancak danışmanlar klasörünü sabit sürücüye aktarırken, yakın zamanda yazılan hiçbir uzman yok! Söyle bana, bunu yapmanın en iyi yolu nedir?

*kodu belgeye kaydedin ve sonra onları tekrar oluşturmayı taahhüt etmiyorum çünkü birçoğu var ve olası bir insan faktörü nedeniyle veri kaybetmek istemiyorum :)

 
Tünaydın! Bana yardım et lütfen!!! danışmanın kaybolduğunu yazan programcı bunu kendisi bitirmek zorunda kaldı ... ve uygulanmamış bir işlev kaldı. EA, ikinci sinyal olarak direnç destek seviyeleri + fibo seviyelerinin arızaları üzerinde çalışıyor, bu yüzden fibo'ya göre gidiyoruz. EA, fiboların yalnızca bir kez girilmesini ve ardından yeni köşelerin görünümü ile yeniden çizilmesini sağlayan bir işleve sahiptir. Sonuç olarak, bir sinyal olduğu ortaya çıktı, ancak bazı kısıtlamalar veya gerekli minimum dc kar al değerini ayarlamak için birkaç nokta nedeniyle işe yaramadı. fibo yeni bir tepe oluşturmadı, yeniden çizmedi, fiyat akıyor, tersine dönüyor ve satış gerektiğinde alış anlaşması yapıyor .. Lütfen yardım edin, bana bildirin veya danışmana bir link atın. yukarıya ve yukarıdan aşağıya oturmak için. Şimdiden çok teşekkür ederim!!!!!
 

Arkadaşlar lütfen yardım edin, son açık emrin çoğunu (henüz kapanmamış) veren bir fonksiyon var. Sondan bir önceki (zaman ölçeğinde) açık siparişin çoğunu (henüz kapatılmamış) döndürecek şekilde değiştirebilir misiniz? Sadece dizileri kullanmadan yapın ..

 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 :

Arkadaşlar lütfen yardım edin, son açık emrin çoğunu (henüz kapanmamış) veren bir fonksiyon var. Sondan bir önceki (zaman ölçeğinde) açık siparişin çoğunu (henüz kapatılmamış) döndürecek şekilde değiştirebilir misiniz? Sadece dizileri kullanmadan yapın ..

Burada da dizileriniz yok. Kod çok güvenilir değil. Açık siparişler listesindeki sonuncuyu arıyorsunuz. IMHO, ona bağlı olmak çok güvenilir değil. Son açık olanı bulmanın en üzücü yolu açılış saatine göredir (en küçüğüdür)
 
Trend çizgisini bir kısayol tuşuyla kurnazca aramak mümkün mü?