Tüm siparişler puan olarak toplam kârla nasıl kapatılır? - sayfa 7

 
khasan kayumov :
Biri bana tüm siparişleri puan olarak toplam kârla nasıl kapatacağımı söyleyebilir mi?

Yazıları okudum bazılarını anlamadım. Muhtemelen kalkış gelmedi.

Kendi adıma bu soruyu şu şekilde anladım: Belirli bir kâra ulaşıldığında farklı enstrümanlar için açık emirlerin nasıl kapatılacağı.

Çok zarif olmayabilir, ancak soruyu şöyle uyguladım:

 extern int     iPrftAc       = 35 ;   // Закрытие всех ордеров по текущему счету.
.......

if ( AccountProfit () > iPrftAc)
   {
     Print ( "//--> Закрытие ордеров: Условие достижения ПРИБЫЛИ ПО ТЕКУЩЕМУ СЧЕТУ!;" );
    vOrderClose( 9 , 0 , "" );          
   }
........
void vOrderClose( int f_iTypOrdDel,   //Тип операции выбранного ордера на удаление
                 int f_iOrderTicket, //Номер тикета ордера
                 string f_sNamSig)   //Наименование сигнала
{
.......
 if (f_iTypOrdDel== 9 ) // Удаление всех открытых и отложенных ордеров по всем финансовым инструментам.
     {
       int CloseOrdSymAll = 0 ;
       do {
          CloseOrdSymAll = 0 ;
           for ( int i= 0 ; i<= OrdersTotal (); i++)
            {
             if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )== true )
                {
                 switch ( OrderType ())
                    {
                     case OP_BUY      :f_sCmdType = "OP_BUY" ;
                                      f_bResult = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ) ,iSlippage, clrBlue );
                                       if (f_bResult == true ) Print ( "//---> vOrderClose: " ,f_iTypOrdDel, ") Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, "  successfully" );
                                       else {
                                             Print ( "//--->vOrderClose: № " ,f_iTypOrdDel, ". Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, ", failed. Error:" , GetLastError ());
                                             Sleep ( 1000 );
                                           }  
                                      CloseOrdSymAll++;
                                       break ;
                                         
                     case OP_BUYLIMIT :f_sCmdType = "OP_BUYLIMIT" ;
                                      f_bResult = OrderDelete ( OrderTicket (),CLR_NONE);
                                       if (f_bResult == true ) Print ( "//---> vOrderClose: " ,f_iTypOrdDel, ") Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, " successfully" );
                                       else {
                                             Print ( "//--->vOrderClose: № " ,f_iTypOrdDel, ". Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, ", failed. Error:" , GetLastError ());
                                             Sleep ( 1000 );
                                           }  
                                      CloseOrdSymAll++;
                                       break ;
                                         
                     case OP_BUYSTOP :f_sCmdType = "OP_BUYSTOP" ;
                                      f_bResult = OrderDelete ( OrderTicket (),CLR_NONE);
                                       if (f_bResult == true ) Print ( "//---> vOrderClose: " ,f_iTypOrdDel, ") Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, " successfully" );
                                       else {
                                             Print ( "//--->vOrderClose: № " ,f_iTypOrdDel, ". Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, ", failed. Error:" , GetLastError ());
                                             Sleep ( 1000 );
                                           }  
                                      CloseOrdSymAll++;
                                       break ;
                                         
                     case OP_SELL     :f_sCmdType = "OP_SELL" ;
                                      f_bResult = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ) ,iSlippage, clrRed );
                                       if (f_bResult == true ) Print ( "//---> vOrderClose: " ,f_iTypOrdDel, ") Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, " successfully" );
                                       else {
                                             Print ( "//--->vOrderClose: № " ,f_iTypOrdDel, ". Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, ", failed. Error:" , GetLastError ());
                                             Sleep ( 1000 );
                                           }  
                                      CloseOrdSymAll++;
                                       break ;
                                         
                     case OP_SELLLIMIT :f_sCmdType = "OP_SELLLIMIT" ;
                                       f_bResult = OrderDelete ( OrderTicket (),CLR_NONE);
                                       if (f_bResult == true ) Print ( "//---> vOrderClose: " ,f_iTypOrdDel, ") Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, " successfully" );
                                       else {
                                             Print ( "//--->vOrderClose: № " ,f_iTypOrdDel, ". Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, ", failed. Error:" , GetLastError ());
                                             Sleep ( 1000 );
                                            }  
                                       CloseOrdSymAll++;
                                       break ;
                                         
                     case OP_SELLSTOP :f_sCmdType = "OP_SELLSTOP" ;
                                       f_bResult = OrderDelete ( OrderTicket (),CLR_NONE);
                                       if (f_bResult == true ) Print ( "//---> vOrderClose: " ,f_iTypOrdDel, ") Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, " successfully" );
                                       else {
                                             Print ( "//--->vOrderClose: № " ,f_iTypOrdDel, ". Order(#" , OrderTicket (), ") Type(#" , OrderType (), ") " ,f_sCmdType, ", failed. Error:" , GetLastError ());
                                             Sleep ( 1000 );
                                            }  
                                       CloseOrdSymAll++;
                                       break ;
                    }
                }    
            }          
         }
     }
}
//+------------------------------------------------------------------+
//|Конец                                                             |
//+------------------------------------------------------------------+
 

Ve burada anlamadığım bir şey var.

Para veya puan kazanıyor musunuz?

İstenen (ANA!) sonuç her zaman gözünüzün önündeyken neden karmaşık sonuçlar arama zahmetine girmiyorsunuz: tüm işlemlerin toplam kârı (PARA OLARAK!) size uygunsa, her şeyi cehenneme çeviriyoruz!

 
Artemij :

Ve burada anlamadığım bir şey var.

Para veya puan kazanıyor musunuz?

İstenen (ANA!) sonuç her zaman gözünüzün önündeyken neden karmaşık sonuçlar arama zahmetine girmiyorsunuz: tüm işlemlerin toplam kârı (PARA OLARAK!) size uygunsa, her şeyi cehenneme çeviriyoruz!


Kâr parada ise, parti büyüklüğünü değiştirirken kâr değerini orantılı olarak değiştirmek gerekecektir. Rahat değil.

 
Vadym Kulish :

Yazıları okudum bazılarını anlamadım. Muhtemelen kalkış gelmedi.

Kendi adıma bu soruyu şu şekilde anladım: Belirli bir kâra ulaşıldığında farklı enstrümanlar için açık emirlerin nasıl kapatılacağı.

Çok zarif olmayabilir, ancak soruyu şöyle uyguladım:

Neden bu kadar uzun bir ara var? Şimdi her şey yolunda gidiyor...

Genelde ara vermeden kapatırım.

 
Renat Akhtyamov :

Neden bu kadar uzun bir ara var? Şimdi her şey yolunda gidiyor...

Genelde ara vermeden kapatırım.


Bu, kodun önceki sürümlerinin bir kalıntısıdır, kod, hatanın doğasını anlamadı, yani MarketInfo'nun anlamı ( OrderSymbol (), MODE_ASK ), şimdi her ihtimale karşı kaldı. Uzman kayıtlı değil.