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

 
lil_lil :

Teşekkür ederim.

Şu an sorun ne?

Ben HistorySelectByPosition ile başlamayı önerdim ve sen onu ifs'in derinliklerinde bir yere koydun...

Netleştirme hesabı başına sembol başına yalnızca bir pozisyon olabilir. Pozisyon ID'sini aldık, bu pozisyonun oluşumuna dahil olan işlemlerin listesini aldık ve işlem yönüne ve emir tipine göre saydık.

 
Alexey Kozitsyn :

Artyom, soruyu tekrarlıyorum, lütfen cevapla:


soruyu göremedim :)

Dürüst olmak gerekirse - hatırlamıyorum ama bence MT5'te çalışıyor - değil mi?

Ama sonuçta, test cihazına gecikmeler koydum ... Ve fare ile çalıştım. Zaten kandırıldığım ortaya çıkabilir ve fareyle sadece gerçek bir grafik üzerinde ve test cihazında aptalca düğmelerle çalıştım ...

Tahmin etmeyeceğim - altı ay önce tüm kitaplığımı vidalara ayırdım ve hızlı bir şekilde kontrol edemeyeceğim. Evet, yeniden yaratılmasını sonbahara erteledim. Bu nedenle, test cihazında OnChartEvent() olay modelinin çalışmasını kontrol etmek daha hızlıdır. Ama bunun için henüz zamanım yok - üzgünüm :)

 
Artyom Trishkin :

soruyu göremedim :)

Dürüst olmak gerekirse - hatırlamıyorum ama bence MT5'te çalışıyor - değil mi?

Ama sonuçta, test cihazına gecikmeler koydum ... Ve fare ile çalıştım. Zaten kandırıldığım ortaya çıkabilir ve fareyle sadece gerçek bir grafik üzerinde ve test cihazında aptalca düğmelerle çalıştım ...

Tahmin etmeyeceğim - altı ay önce tüm kitaplığımı vidalara ayırdım ve hızlı bir şekilde kontrol edemeyeceğim. Evet, yeniden yaratılmasını sonbahara erteledim. Bu nedenle, test cihazında OnChartEvent() olay modelinin çalışmasını kontrol etmek daha hızlıdır. Ama bunun için henüz zamanım yok - üzgünüm :)

Doğrulama kodunun tamamı var:

 switch ( id )
{
default :
   Print ( __FUNCTION__ , ": id = " + EnumToString ( ( ENUM_CHART_EVENT )id ) );
}

ne yazık ki test cihazında hiçbir tepki yok. OnChartEvent() işlevinde . Bir uzmandan arayın.

 
Alexey Kozitsyn :

Doğrulama kodunun tamamı var:

ne yazık ki test cihazında hiçbir tepki yok. OnChartEvent() işlevinde .

CHART_EVENT_MOUSE_MOVE=doğru ayarlanmış mı?
 
Alexey Viktorov :

Ben HistorySelectByPosition ile başlamayı önerdim ve sen onu ifs'in derinliklerinde bir yere koydun...

Netleştirme hesabı başına sembol başına yalnızca bir pozisyon olabilir. Pozisyon ID'sini aldık, bu pozisyonun oluşumuna dahil olan işlemlerin listesini aldık ve işlem yönüne ve emir tipine göre saydık.

Netleştirme ve riskten korunma için evrensel bir hesaplama işlevi yapmak istediğim için koydum, yoksa bu imkansız mı?

 
Artyom Trishkin :
CHART_EVENT_MOUSE_MOVE=doğru ayarlanmış mı?

Hayır, ancak bunun sorunu çözmesi pek mümkün değil çünkü. ve ctrl ve shift ve diğer tuşlara basıldı ... tepki yoktu.

 
lil_lil :

Netleştirme ve riskten korunma için evrensel bir hesaplama işlevi yapmak istediğim için koydum, yoksa bu imkansız mı?

Belki. Ancak yaklaşımlar farklıdır ve önce doğru bir şekilde planlanmaları gerekir ve her şeyi tek satırda tek bir koda dökmek değil ...

 
Alexey Kozitsyn :

Hayır, ancak bunun sorunu çözmesi pek mümkün değil çünkü. ve ctrl ve shift ve diğer tuşlara basıldı ... tepki yoktu.

Genel olarak, şu anda deneyler için gerçekten zamanım yok - kendi işlerim hala beklemede.

Belki gerçekten unutmuşumdur. Ama test cihazına gecikmeler koydum. Muhtemelen - sadece aynı düğmeler. Ve fareyle ne koyduğumu da biliyorum. Ama belki canlı bir grafikte...

 
Artyom Trishkin :

Belki. Ancak yaklaşımlar farklıdır ve önce doğru bir şekilde planlanmaları gerekir ve her şeyi tek satırda tek bir koda dökmek değil ...

O yüzden şimdilik ayrı ayrı yapacağım.

Ne kaçırdım?

 int GetNum( const string aSymbol)
  {
   int     count= 0 ;
   if ( PositionSelect (aSymbol))
     {
       long pos_id= long ( PositionGetInteger ( POSITION_IDENTIFIER ));

       if (pos_id> 0 )
        {
         if ( HistorySelectByPosition ( ulong (pos_id)))
           {
             int deals= HistoryDealsTotal ();

             for ( int i= 0 ; i<deals; i++)
              {
               ulong deal_ticket= HistoryDealGetTicket (i);
               ulong order_ticket= ulong ( HistoryDealGetInteger (deal_ticket, DEAL_ORDER ));

               if (order_ticket> 0 )
                 {
                   long deal_entry= long ( HistoryDealGetInteger (deal_ticket, DEAL_ENTRY ));

                   if (deal_entry== DEAL_ENTRY_IN )
                    {
                     if (m_position.PositionType()== POSITION_TYPE_SELL )
                       {
                        count++;
                       }
                    }
                 }
              }
             if ( count > 0 ) return (count);
           }
         else
           {
             Print ( "Не возможно получить историю позиции по символу " ,aSymbol);
           }
        }
       else
        {
         Print ( "Не возможно определить идентификатор позиции по символу " ,aSymbol);
        }
     }
   return ( 0 );
  }
////////////
 
Önce doğru sayıyor, sonra 5 limit SATIŞ aktif olunca 6. yorumda yazıyor. Altıncı nereden geliyor?