[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 330

 

Beyler anlatın... İşte kodun piyasaya giriş koşullarının hesaplandığı bölümler. NEDEN optimizasyon sırasında elde edilen zaman aralığı değerleri

 extern int s_signal_period= 7 ;
extern int t_trend_period = 7 ; // 1-M1, 2-M5, 3-M15, 4-M30, 5-H1, 6-H4, 7-D1, 8-W.

onlar. TF = günlük, strateji test cihazında 4 saatlik mumların açılışında piyasaya girilir, H4 periyodunda test yapılırken??? Sonuçta, SADECE günlük ticaretin açılışında bir giriş olmalıdır - Yeni bir çubuğun açılmasını kontrol eden bir danışman olan H4 ve D1 için kod ve test raporu bölümlerini veriyorum.

xtern string A4 = "Таймфрейм и параметры технических индикаторов" ;
extern int s_signal_period= 7 ;
extern int t_trend_period =7;
...
static datetime prevtime = 0 ;       // по ценам открытия

...
int start()
{
   if (Time[ 0 ] == prevtime)   return ( 0 );   //ждем нового бара
   prevtime = Time[ 0 ];                   //если появился новый бар , включаемся
   
   ...                     
//---------------------------------------------В ЛОНГ-------------------------------------------------------------------------      

       if (((type_op()==OP_BUY) || (Buy_signal==true && Sell_signal==false)) && (orderCount== 0 || orderCount < 10 ) && Period_MA_Fast<Period_MA_Slow && delta_fma()> 0 && delta_sma()> 0 &&   
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 1 ) > iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 2 ) && //идентификация впадины 
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 2 ) > iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 3 ) && //с последующим
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 4 ) > iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 3 ))   //ростом
            
           WmOrderSend( Symbol (), OP_BUY, Lots_New, Ask,Bid-StopLoss* Point , Bid + TakeProfit* Point , "2MA+Momentum" , magic);


//---------------------------------------------В ШОРТ--------------------------------------------------------------------------     
     
       if (((type_op()==OP_SELL) || (Buy_signal==false && Sell_signal==true)) && (orderCount== 0 || orderCount < 10 ) && Period_MA_Fast<Period_MA_Slow  && delta_fma()< 0 && delta_sma()< 0 &&
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 1 ) < iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 2 ) && //вершина 
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 2 ) < iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 3 ) && //с последующим 
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 4 ) < iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 3 ))   //падением
      
          
           WmOrderSend( Symbol (), OP_SELL, Lots_New, Bid, Ask+StopLoss* Point , Ask - TakeProfit* Point , "2MA+Momentum" , magic); 
      
         
 ...          
} //------------------------------------------Конец Старт-----------------------------------------------------

double delta_fma()
  {
     int signal_period= GetPeriod(s_signal_period);
     return ( iMA ( Symbol (),signal_period,Period_MA_Fast, 0 , MODE_EMA , PRICE_CLOSE , 1 )-
           iMA ( Symbol (),signal_period,Period_MA_Fast, 0 , MODE_EMA , PRICE_CLOSE , 3 ));
  }

double delta_sma()
  {
     int trend_period = GetPeriod(t_trend_period); 
     return ( iMA ( Symbol (),trend_period,Period_MA_Slow, 0 , MODE_EMA , PRICE_CLOSE , 1 )-
           iMA ( Symbol (),trend_period,Period_MA_Slow, 0 , MODE_EMA , PRICE_CLOSE , 3 ));
  }

//для оптимизации по всем периодам по всем периодам
int GetPeriod( int period)
{ int periodres;
 switch (period)
  {
   case 1 : periodres= 1 ; break ;     //M1
   case 2 : periodres= 5 ; break ;     //M5
   case 3 : periodres= 15 ; break ;     //M15
   case 4 : periodres= 30 ; break ;     //M30
   case 5 : periodres= 60 ; break ;     //H1
   case 6 : periodres= 240 ; break ;   //H4
   case 7 : periodres= 1440 ; break ;   //D1
   case 8 : periodres= 10080 ; break ; //W
   default : periodres= 1 ; break ;
  }
return (periodres);
} 

Raporlar. H4 üzerinde test yapılırken - extern int s_signal_period= 7 ;
harici int t_trend_period =7;

D1 - D1 üzerinde test - D1 açılışında aynı harici int s_signal_period= 7 ile pazara giriş;
harici int t_trend_period =7;

Teoride öyle olmalı... Strateji test cihazı neden pazara H4'te test yaparken H4'ün açılışında giriyor da günlük mumların açılışında girmiyor??? ,çünkü s_signal_period= 7 ;
extern int t_trend_period = 7 ;

Bu konudaki ipucu için teşekkürler.

 
Roman. :

Beyler anlatın... İşte kodun piyasaya giriş koşullarının hesaplandığı bölümler. NEDEN optimizasyon sırasında elde edilen zaman aralığı değerleri

onlar. TF = günlük, strateji test cihazında 4 saatlik mumların açılışında piyasaya girilir, H4 periyodunda test yapılırken??? Sonuçta, SADECE günlük ticaretin açılışında bir giriş olmalıdır - Yeni bir çubuğun açılmasını kontrol eden bir danışman olan H4 ve D1 için kod ve test raporu bölümlerini veriyorum.

Raporlar. H4 üzerinde test yapılırken - extern int s_signal_period= 7 ;
harici int t_trend_period =7;

D1 - D1 üzerinde test - D1 açılışında aynı harici int s_signal_period= 7 ile pazara giriş;
harici int t_trend_period =7;

Teoride öyle olmalı... Strateji test cihazı neden pazara H4'te test yaparken H4'ün açılışında giriyor da günlük mumların açılışında girmiyor??? ,çünkü s_signal_period= 7 ;
harici int t_trend_period = 7 ;

Bu konudaki ipucu için teşekkürler.


Sağlanan kod cevaplamak için yeterli değil
 
Vinin :

Sağlanan kod cevaplamak için yeterli değil

Ne kadar koda ihtiyacınız var? Sinyal kısmı var...
 
Vinin :

Sağlanan kod cevaplamak için yeterli değil

Şimdi H1'de test edildi - s_signal_period= 7 ile her saat başı fırsatlar açar;
extern int t_trend_period = 7 ;
 
Roman. :

Şimdi H1'de test edildi - s_signal_period= 7 ile her saat başı fırsatlar açar;
extern int t_trend_period = 7 ;


Signal_period değişkenini global yapmak ve buna init() içinde bir değer atamak mantıklıdır.

Ve yeni çubuğun kontrolünü değiştirin

   if ( iTime ( Symbol (),signal_period, 0 ) == prevtime)   return ( 0 );   //ждем нового бара
   prevtime = iTime ( Symbol (),signal_period, 0 );                   //если появился новый бар , включаемся
 
Vinin :


Signal_period değişkenini global yapmak ve buna init() içinde bir değer atamak mantıklıdır.

Ve yeni çubuğun kontrolünü değiştirin


Anlıyorum Victor, teşekkür ederim - bu gece işten sonra deneyeceğim. Sonuçları bu başlık altında paylaşacağım.
 
bana geyik emrinin yakalanıp yakalanmadığını programlı olarak nasıl öğreneceğimi söyle?
 
CLAIN :
bana geyik emrinin yakalanıp yakalanmadığını programlı olarak nasıl öğreneceğimi söyle?

Doğru düşün.

Arama: Kaybeden bir ticaret sitesini belirleme :mql4.com, kaybeden bir ticaret sitesi arama :mql4.com

 
CLAIN :
bana geyik emrinin yakalanıp yakalanmadığını programlı olarak nasıl öğreneceğimi söyle?

OrderClosePrice()==OrderStopLoss() - ise, durdurma emri bir zarar emriyle kapatılır. Bütün hile, hangi kârın kapatıldığı bölgesinde. Diyelim ki, tüccar bir pozisyon açtı, bir zararı durdurdu ve sonra pozisyon kara geçtiğinde, zararı durdurmayı pozitif kar bölgesine taşıdı - yani, durdurma işe yararsa, emir bir ile kapanır. kâr. Fiyat geri döndü ve siparişi düşürdü. Yani, onun OrderClosePrice() aslında OrderStopLoss()'a eşittir. SİPARİŞ ELK'I YAKALADI, sadece zararda değil, kârda yakaladı. Böyle bir durumda ne yapacaksınız?
 

Merhaba!

Giriş fiyatına, StopLoss'a ve depozito yüzdesine bağlı olarak lot büyüklüğünü nasıl hesaplayacağımı söyleyin? Diyelim ki giriş 1.4500, StopLoss 1.4400. Risk 100 piptir. 0.1 pip değeri ve bakiyenin %2 riski (10.000 kabul edilebilir) ile lot büyüklüğü 0.2 olacaktır. Bu formülü MQL kullanarak görüntülemek mümkün müdür? Neredeyse tüm forumu aradım ve benzer bir şey bulamadım. Her yerde kesinlikle farklı lot hesaplama yöntemleri sunulmaktadır.

Teşekkür ederim.