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

 

İyi akşamlar.

İşlem haftasının sonunda tüm pozisyonların kapanışını ve tüm emirlerin silinmesini nasıl ekleyeceğinizi söyler misiniz?

Teşekkür ederim!

 
Antonius :

İyi akşamlar.

İşlem haftasının sonunda tüm pozisyonların kapanışını ve tüm emirlerin silinmesini nasıl ekleyeceğinizi söyler misiniz?

Teşekkür ederim!

Böyle bir komut dosyası yazın, ardından her şeyi kapatıp silmeniz gerektiğinde grafiğe atın. Delov...

Rica ederim!

 
artmedia70 :

Böyle bir komut dosyası yazın, ardından her şeyi kapatıp silmeniz gerektiğinde grafiğe atın. Delov...

Rica ederim!



Teşekkürler :) İsteği açıklıyorum.

Danışmana, işlem haftasının sonunda tüm emirleri ve pozisyonları kapatacak bir kod eklemeniz gerekir.

Bu kodu yazabilir misiniz?

 
Antonius :


Teşekkürler :) İsteği açıklıyorum.

Danışmana, işlem haftasının sonunda tüm emirleri ve pozisyonları kapatacak bir kod eklemeniz gerekir.

Bu kodu yazabilir misiniz?

Yapabilirim. Sorun yok. Kendin bir şey yaptın mı? Bu dal ücretsiz hazırlanmak için değil, kendini kodlamaya çalışanlara yardımcı olmak içindir.
 
artmedia70 :
Yapabilirim. Sorun yok. Kendin bir şey yaptın mı? Bu dal ücretsiz hazırlanmak için değil, kendini kodlamaya çalışanlara yardımcı olmak içindir.


Buraya baktım https://book.mql4.com/en/trading/orderclose

Google'da, forumda arandı. Bulamadım. Belki de isteği yanlış yazıyorum.

Yeni başlayanlar için konuyu sormaya karar verdim.

 

Nasıl reçete edilir?

Komut dosyasını nasıl çalıştırırsınız:

"genel" ve "giriş parametreleri" sekmelerini içeren bir pencere görüntülenir.

Giriş parametrelerine tarihi girmem gerekiyor.

Komut dosyası başlatıldığında, tarih için bir pencerenin basitçe görüntülenmesi, tarihi sürmem, Tamam'a tıklamam ve her şeyin işe yaraması mümkün mü?

Ve komut dosyasının son girdiğim tarihi hatırlamasını sağlamak mümkün mü?

 
artmedia70 :

Durdurarak son kapalı konumu belirleme işlevi bool tipine sahiptir ve bundan double tipi döndürmeye çalışıyorsunuz. Buna göre, size 0 veya 1 döndürür.

Peki, size bir değişkenin transferini buna referans olarak eklemeniz gerektiğini yazdım:

Şimdi örneğin son Satın almayı kontrol ediyoruz:

Aşağı yukarı böyle...


Çok teşekkürler.
 
artmedia70 :

Durdurarak son kapalı konumu belirleme işlevi bool tipine sahiptir ve bundan double tipi döndürmeye çalışıyorsunuz. Buna göre, size 0 veya 1 döndürür.

Peki, size bir değişkenin transferini buna referans olarak eklemeniz gerektiğini yazdım:

Şimdi örneğin son Satın almayı kontrol ediyoruz:

Aşağı yukarı böyle...


Her şeyi dediğin gibi yaptı. Her şey derlenir ...... ancak danışman test edilirken işlev çalışmaz ..... danışman tüm pozisyonları 0,1 lot açar.

 double    Magic, Lot;

int start()
  {
        

  
 double Price=iOpen ( Symbol (), 0 , 0 );
 

          
 int last_order_bar = 0 ;                                                                                                                        
 int ot = OrdersTotal ();                                                                                                                        
                                                                                                                        
 if (ot> 0 ) //если есть ордера в рынке                                                                                                                   
 {                                                                                                                      
   if ( OrderSelect (ot- 1 ,SELECT_BY_POS))                                                                                                                        
       if (OrderType ()==OP_BUY || OrderType ()==OP_SELL )                                                                                                                       
         last_order_bar = iBarShift ( Symbol (), 0 ,OrderOpenTime ());                                                                                                             
 }                                                                                                                      
                                                                                                                        
 int last_hist_order_bar = 0 ;                                                                                                                   
 int oht = OrdersHistoryTotal();                                                                                                                        
                                                                                                                
 if (oht> 0 )                                                                                                                     
 {                                                                                                                      
   if ( OrderSelect (oht- 1 ,SELECT_BY_POS, MODE_HISTORY))                                                                                                                         
       if (OrderType ()==OP_BUY || OrderType ()==OP_SELL)                                                                                                                        
         last_hist_order_bar = iBarShift ( Symbol (), 0 ,OrderOpenTime ());
                                                                                                        
        }

                                                                                                        
if (ot== 0 )

 if (Bid ==Price)
//=============================================================== 
  
if (((Open[ 1 ]-Close[ 1 ])> 100 * Point )&&((Open[ 1 ]-Close[ 1 ])< 120 * Point ))
if (((High[ 1 ]-Open[ 1 ])> 40 * Point )&&((High[ 1 ]-Open[ 1 ])< 60 * Point ))
if (((Close[ 1 ]-Low[ 1 ])> 40 * Point )&&((Close[ 1 ]-Low[ 1 ])< 60 * Point ))

//============================================================
                                                                           // задавать минимальное значение лота я не стал ,мне кажется для тестера это не обязательно
if (isCloseLastPosByStop( Symbol (), OP_BUY, Magic, Lot))                        
{
Lot=Lot* 2 ;
OrderSend ( Symbol (),OP_SELL,Lot,Bid, 1 ,Ask+ 1500 * Point ,Ask- 300 * Point , "jfh" , 123 );
}
else
{

Lot= 0.1 ;        
OrderSend ( Symbol (),OP_SELL, 1 ,Bid,Lot,Ask+ 1500 * Point ,Ask- 300 * Point , "jfh" , 123 );
}
   return ( 0 );
  }
//============================================================  
bool isCloseLastPosByStop( string sy, int op, int mn, double ll )       // у Вас перед названием формального  параметра  11 стоял знак &- я его убрал.
{
   double    pt;
   datetime t;                                                       // у вас тип переменной t был int - я сделал datetime
   int        dg, i, j=- 1 , k=OrdersHistoryTotal()- 1 ;

   for (i=k; i>= 0 ; i--) 
   {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) 
     {
         if (OrderMagicNumber()!=mn)   continue ;   // если магик не тот, переходим к следующему
         if (OrderSymbol()!=sy)         continue ;   // если символ не тот, переходим к следующему
         if (OrderType()!=op)           continue ;   // если тип не тот, переходим к следующему
         if (t<OrderCloseTime()) 
         {
            t=OrderCloseTime();
            j=i;
            }
         }
      }
      
   if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) 
   {
      dg=MarketInfo(OrderSymbol(), MODE_DIGITS);       // количество знаков в цене символа ордера
      pt=MarketInfo(OrderSymbol(), MODE_POINT);       // размер пункта инструмента в валюте котировки ордера
       if ( MathAbs (OrderClosePrice()-OrderStopLoss())< 0.5 *pt) // Если закрыт по стопу
      { 
         ll=OrderLots();                               // записываем количество лотов в ордере, закрытом по стопу
         return ( true );                                 // возвращаем истину
         }
      }
      
   return (False);                                     // возвращаем ложь (позиции нету, либо не по стопу)
}

Lütfen bana hatamın ne olduğunu söyle.

Böyle bir anı anlamıyorum - doğru bir şekilde belirttiğiniz gibi, işlev bir bool türü değeri döndürür ve işlevin bir bool türü değeri koyması gereken bir işlev çağrısında

Diğer değer türlerini belirtmenizi önerirsiniz.

Teşekkür ederim.

 
solnce600 :

Her şeyi dediğin gibi yaptı. Her şey derlenir ...... ancak danışman test edilirken işlev çalışmaz ..... danışman tüm pozisyonları 0,1 lot açar.

Lütfen bana hatamın ne olduğunu söyle.

Böyle bir anı anlamıyorum - doğru bir şekilde belirttiğiniz gibi, işlev bir bool türü değeri döndürür ve işlevin bir bool türü değeri koyması gereken bir işlev çağrısında

Diğer değer türlerini belirtmenizi önerirsiniz.

Teşekkür ederim.


 bool isCloseLastPosByStop( string sy, int op, int mn, double ll)       //у Вас перед названием формального  параметра  11 стоял знак &- я его убрал.

Neden kaldırıldı. Eğer bırakılırsa, o zaman her şey işe yarar

 
Vinin :

Neden kaldırıldı. Eğer bırakılırsa, o zaman her şey işe yarar

Merak ediyorum ..... bu işaret ne anlama geliyor .... ders kitabında bununla ilgili hiçbir şey hatırlayamıyorum.