Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 225

 

İyi akşamlar!

Pozisyonu daha önce değiştirip değiştirmediğimi ayırt etmek için uzun bir süre sistemi yorumlarla kullandım..

Örneğin, bir satın alma siparişi verdikten sonra SL ve TP'yi pozisyonlarda değiştirdiğim gerçeği nasıl doğru bir şekilde ayırt edilir? Bu pozisyon veya fonksiyon için özel bir alan var mı?

 
websafe25 :

İyi akşamlar!

Pozisyonu daha önce değiştirip değiştirmediğimi ayırt etmek için uzun bir süre sistemi yorumlarla kullandım..

Örneğin, bir satın alma siparişi verdikten sonra SL ve TP'yi pozisyonlarda değiştirdiğim gerçeği nasıl doğru bir şekilde ayırt edilir? Bu pozisyon veya fonksiyon için özel bir alan var mı?

Bu pek olası değil.

IMHO, pozisyonun veya emirlerin mevcut durumuna güvenmemelisiniz. Yeniden başlatmanın ardından sistemin kendi içinde mevcut piyasa durumunda olması gerektiği gibi bir durum oluşturması çok daha güvenilirdir. Ondan sonra ise başvuruların konumunu ve yerleşimini hizaya getirecektir.

 
pronych :

Bu pek olası değil.

IMHO, pozisyonun veya emirlerin mevcut durumuna güvenmemelisiniz. Yeniden başlatmanın ardından sistemin kendi içinde mevcut piyasa durumunda olması gerektiği gibi bir durum oluşturması çok daha güvenilirdir. Ondan sonra ise başvuruların konumunu ve yerleşimini hizaya getirecektir.

Cevap için teşekkürler.

durumumu anlatacağım.

Pozisyon 10 piplik bir kâra ulaştığında, pozisyonu kayıpsıza taşımak istiyorum, yani stopları örneğin açılış fiyatı + 3 pip'e taşıyorum.

Şimdi böyle bir durum var.

 if (AccountInfo.OrderProfitCheck( _Symbol , ORDER_TYPE_SELL ,Lot,PositionInfo.PriceOpen(), NormalizeDouble (PositionInfo.PriceOpen()-ModifyPips* _Point , _Digits )) <= PositionInfo.Profit())
        {
         if (Trade.PositionModify( _Symbol , NormalizeDouble (PositionInfo.PriceOpen()-ModifySLPips* _Point , _Digits ), NormalizeDouble (PositionInfo.PriceOpen()-TP* _Point , _Digits )))
          {

Anlaşmadaki kâr 10 puandan büyük veya ona eşitse, durakları değiştiririm. Kâr büyür ve değişiklik sürekli olarak tekrar tekrar gerçekleşir.Anlaşmayı bir kez kayıpsıza taşımanız ve sonra gitmesine izin vermeniz gerekir....

Bundan nasıl kurtulabilirim? Yoksa <= değil = yazmak daha mı iyi? Danışman bu işleme ulaşıp işlemdeki karı karşılaştırmaya başladığında, artık 10 puana eşit olmayacağı ve kârın daha fazla olacağı, ardından zararsız kapanmayacağı bir seçenek var mı?

Not> Bence pozisyon alırken SL'nin fiyattan hangi seviyede olduğuna bakın, eğer fiyattan yüksekse zaten modifiye etmişimdir...

Bunu şu şekilde çözdü:

 if (PositionInfo.Select( _Symbol ))
{
   if (PositionInfo.PositionType()== POSITION_TYPE_BUY )
     {
     if (PositionInfo.StopLoss() > PositionInfo.PriceOpen())
       {
         if (AccountInfo.OrderProfitCheck( _Symbol , ORDER_TYPE_BUY ,Lot,PositionInfo.PriceOpen(), NormalizeDouble (SymbolInfo.Ask()+ModifyPips* _Point , _Digits )) >= PositionInfo.Profit())
          {
             Trade.PositionModify( _Symbol , NormalizeDouble (PositionInfo.PriceOpen()+ModifySLPips* _Point , _Digits ), NormalizeDouble (PositionInfo.PriceOpen()+TP* _Point , _Digits ));
          }
       }
     }
   if (PositionInfo.PositionType()== POSITION_TYPE_SELL )
     {
     if (PositionInfo.StopLoss() < PositionInfo.PriceOpen())
       {
       if (AccountInfo.OrderProfitCheck( _Symbol , ORDER_TYPE_SELL ,Lot,PositionInfo.PriceOpen(), NormalizeDouble (PositionInfo.PriceOpen()-ModifyPips* _Point , _Digits )) <= PositionInfo.Profit())
        {
        Trade.PositionModify( _Symbol , NormalizeDouble (PositionInfo.PriceOpen()-ModifySLPips* _Point , _Digits ), NormalizeDouble (PositionInfo.PriceOpen()-TP* _Point , _Digits ));
        }
       }
     }
}
 
websafe25 :

Not> Bence pozisyon alırken SL'nin fiyattan hangi seviyede olduğuna bakın, eğer fiyattan yüksekse zaten modifiye etmişimdir...

Bunu şu şekilde çözdü:

PS'den sonra yazdıklarınız gayet açık. (gerçekten çok doğru olmanız gerekiyorsa, son ölçümden bu yana seviyeyi yüksek / düşük çubuklarla bulmaya kadar.)) ama bu olası değildir))

Sadece "kâr" kavramından ayrılmak ve "nokta" kavramına dönmek arzu edilir.

Ve son işlemin ( Last ) fiyatını hesaba katmamak (ve genellikle bu tür fiyatı unutun), ancak bizim için faydalı olan bir varyantta isteyin / teklif verin;))

 

İyi akşamlar!

Ne yazık ki, örneğin RSI gibi sinyal modülünü nasıl kullanabileceğime dair hiçbir yerde belirli bir talimat bulamadım. Yani, nasıl başlatıldığına, parametrelerin ayarlandığına dair bir kayıt var, ancak satın alma durumunu Uzman Danışmanınızdan kontrol etmenin ne kadar kolay olduğu - hayır. Sıradaki ne? Al/sat durumu olup olmadığı nasıl kontrol edilir?

/--- Creating signal
   CExpertSignal *signal= new CExpertSignal;
   if (signal== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating signal" );
      ExtExpert.Deinit();
       return (- 2 );
     }
//---
   ExtExpert.InitSignal(signal);
   signal.ThresholdOpen( 100 );
   signal.ThresholdClose( 100 );
   signal.PriceLevel( 0.0 );
   signal.StopLevel(SL);
   signal.TakeLevel(TP);
//--- Creating filter CSignalRSI
   CSignalRSI *filter0= new CSignalRSI;
   if (filter0== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating filter0" );
      ExtExpert.Deinit();
       return (- 3 );
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PeriodRSI(PeriodRSI);
   filter0.Applied( PRICE_CLOSE );
   filter0.Weight( 0.8 );
 
websafe25 :

İyi akşamlar!

Ne yazık ki, örneğin RSI gibi sinyal modülünü nasıl kullanabileceğime dair hiçbir yerde belirli bir talimat bulamadım. Yani, nasıl başlatıldığına, parametrelerin ayarlandığına dair bir kayıt var, ancak satın alma durumunu Uzman Danışmanınızdan kontrol etmenin ne kadar kolay olduğu - hayır. Sıradaki ne? Al/sat durumu olup olmadığı nasıl kontrol edilir?

Sinyal modülü tasarım aşamasında danışmanınıza bağlanır. Her sinyal modülünde oylama düzenlenir...

Genel olarak, okunacak makaleler:

6 adımda bir ticaret robotu oluşturun!

ve sonunda

Özel Gösterge Ticaret Sinyali Oluşturucu

 

Bu arada - oylama modülündeki sinyallerin aritmetik ortalamasını almanın yanlış olduğu bana göre mi?

 double CExpertSignal::Direction( void )
  {
   long    mask;
   double direction;
   double result=m_weight*(LongCondition()-ShortCondition());
   int     number=(result== 0.0 )? 0 : 1 ;       // number of "voted"
//---
   int     total=m_filters.Total();
//--- loop by filters
   for ( int i= 0 ;i<total;i++)
     {
       //--- mask for bit maps
      mask=(( long ) 1 )<<i;
       //--- check of the flag of ignoring the signal of filter
       if ((m_ignore&mask)!= 0 )
         continue ;
      CExpertSignal *filter=m_filters.At(i);
       //--- check pointer
       if (filter== NULL )
         continue ;
      direction=filter.Direction();
       //--- the "prohibition" signal
       if (direction== EMPTY_VALUE )
         return ( EMPTY_VALUE );
       //--- check of flag of inverting the signal of filter
       if ((m_invert&mask)!= 0 )
         result-=direction;
       else
         result+=direction;
// Вот тут бы       number+=filter.Weight();

      number++;
      }
//--- normalization
   if (number!= 0 )
      result/=number; // Вот туточки???
//--- return the result
   return (result);
  }
 
YAndrey :

Bu arada - oylama modülündeki sinyallerin aritmetik ortalamasını almanın yanlış olduğu bana göre mi?

Her şey mantıklı.

Daha fazla makale okuyun MQL5 Sihirbazı: Yeni sürüm ve işte makaleden bir resim:

normalleştirme

 
barabashkakvn :

Her şey mantıklı.

Daha fazla makale okuyun MQL5 Sihirbazı: Yeni sürüm ve işte makaleden bir resim:

mantıklı mı??? Ağırlıklar 1 ise, evet, mantıklıdır.

2 filtre sinyalim olduğunu hayal edin. Biri iyi, şişman, buna güveniyorum ve ona 1 kilo veriyorum. Diğeri küçük, yardımcı, yani. gösteriş için, bu nedenle ağırlığı = 0.1.

Kalın olanı 100'e eşit bir satın alma sinyali verir ve ihmal edilebilecek küçük bir sinyal 10 satın almak için kullanılabilir. Ve bana genel bir sinyal verecek ne ??? 50.5??? Bu küçüğün durumu bu kadar hafife alması garip değil mi???

 
YAndrey :

mantıklı mı??? Ağırlıklar 1 ise, evet, mantıklıdır.

2 filtre sinyalim olduğunu hayal edin. Biri iyi, şişman, buna güveniyorum ve ona 1 kilo veriyorum. Diğeri küçük, yardımcı, yani. gösteriş için, bu nedenle ağırlığı = 0.1.

Kalın olanı 100'e eşit bir satın alma sinyali verir ve ihmal edilebilecek küçük bir sinyal 10 satın almak için kullanılabilir. Ve bana genel bir sinyal verecek ne ??? 50.5??? Bu küçüğün durumu bu kadar hafife alması garip değil mi???

1. Nihai oy sayısı. Başlıca özelliği yöndür. İkinci özellik nihai değerdir.
2. Stratejinizde iki sinyal işe yarıyorsa: biri 100*1 gücünde ve ikincisi 10*0,1 gücünde, o zaman sinyal seçimi açısından stratejinizi yeniden gözden geçirmelisiniz.