Bir dosyadan bir Expert Advisor'ın otomatik olarak başlatılması ve yeniden başlatılması - sayfa 7

 
Fry_Антон :

Açık.

Özellikler: Yarın FORTS'ta "anında" bir pozisyonu nasıl yakalayacağımı düşüneceğim. Aslında en çok takası geçen (takas fiyatından yeniden açılan) bir pozisyonun gerçek açılış fiyatını bilmem gerekiyor.

FORTS'ta bir pozisyon, bir (veya birkaç sipariş için) işlem miktarı ile elde edilir. Biletsiz takas konusunda teknik bir anlaşma var, takastan önceki POSITION_PRICE_OPEN fiyatını nasıl belirleyeceğinizi bulmanız gerekiyor.

Saklanabilir. Sadece ömrüne karar vermelisin. Örneğin, danışmanın piyasada olup olmadığını unutun (pozisyon yok).
 
Dmitry Fedoseev :

Açıkçası:

Çekiçlemeye devam etmelisin. Ama en azından uzmanı kesinlikle engellemeyin. Hata sayısı arttıkça, denemeler arasındaki duraklamayı artıracağından, çekiçlemek daha az sert olabilir. En basit çözüm, birkaç deneme ve bir sonraki çubuk açılana kadar bir duraklamadır.

Ancak 2.000'i aşan işlem için Borsa para cezaları ne olacak? Diyelim ki 50 Uzman Danışmanım var, 2.000 işlem geçti. Borsadan para cezası almak için bundan sonra ne yapmalı?
 
Fry_Антон :

Açık.

Özellikler: Yarın FORTS'ta "anında" bir pozisyonu nasıl yakalayacağımı düşüneceğim. Aslında en çok takası geçen (takas fiyatından yeniden açılan) bir pozisyonun gerçek açılış fiyatını bilmem gerekiyor.

FORTS'ta bir pozisyon, bir (veya birkaç sipariş için) işlem miktarı ile elde edilir. Biletsiz takas konusunda teknik bir anlaşma var, takastan önceki POSITION_PRICE_OPEN fiyatını nasıl belirleyeceğinizi bulmanız gerekiyor.

 //+------------------------------------------------------------------+
//| Expert Get position price function                               |
//+------------------------------------------------------------------+
double GetPositionPrice( const string aSymbol )
{
   double price_in = 0 ;
   double volume_in = 0 ;
  
   if ( PositionSelect ( aSymbol ) )
  {
     ulong pos_id = ulong ( PositionGetInteger ( POSITION_IDENTIFIER ) );
    
     if ( pos_id > 0 )
    {
       if ( HistorySelectByPosition ( 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 )
          {
             ENUM_DEAL_ENTRY deal_entry = ENUM_DEAL_ENTRY ( HistoryDealGetInteger ( deal_ticket, DEAL_ENTRY ) );
              
             if ( deal_entry == DEAL_ENTRY_IN )
            {
               double price = HistoryDealGetDouble ( deal_ticket, DEAL_PRICE );
               double volume = HistoryDealGetDouble ( deal_ticket, DEAL_VOLUME );
                                
              price_in += price * volume;
              volume_in += volume;  
            }
          }
        }
         if ( volume_in > 0 ) return ( NormalizeDouble ( price_in / volume_in, _Digits ) );
      }
       else
      {
         Print ( "GetPositionPrice: Невозможно получить историю позиции по символу " , aSymbol );
      }
    }
     else
    {
       Print ( "GetPositionPrice: Невозможно определить идентификатор позиции по символу " , aSymbol );
    }
  }
   return ( 0 );
}
 
Михаил :

Harika! Yarın sikeyim.

Bana çok zaman kazandırdın. Teşekkür ederim.

 
Fry_Антон :

Harika! Yarın sikeyim.

Bana çok zaman kazandırdın. Teşekkür ederim.

Hatırlatma:

Bu fonksiyon YALNIZCA gelen işlemler için tasarlanmıştır!

(yani pozisyonda azalma olmadı)

Her ikisine de ihtiyacınız varsa, işleve DEAL_ENTRY_OUT ekleyin

 
Михаил :

Hatırlatma:

Bu fonksiyon YALNIZCA gelen işlemler için tasarlanmıştır!

(yani pozisyonda azalma olmadı)

Her ikisine de ihtiyacınız varsa, işleve DEAL_ENTRY_OUT ekleyin

Bunu hemen anladım. Burada ilkenin kendisi önemlidir: geçmişteki kimlikler üzerinde yineleme yapmak ve aslında bu, yukarıdaki sorunun tam bir cevabıdır.


Dürüst olmak gerekirse, geliştiricilerin mantığını anlamıyorum, neden takas teknik anlaşmasını bu kadar "beceriksiz" bir şekilde yürütmeye karar verdiler.

Hem grafiklerdeki grafik nesneler, hem de geçmişteki pozisyon özellikleri ve ayrıca açık pozisyonun özellikleri (karlılık) - her şey sadece bir danışmandaki basit bir kodu değil, genel olarak herhangi bir tüccarı yanıltır.

 
kond777 :
Ancak 2.000'i aşan işlem için Borsa para cezaları ne olacak? Diyelim ki 50 Uzman Danışmanım var, 2.000 işlem geçti. Borsadan para cezası almak için bundan sonra ne yapmalı?

Sorunuzun cevabını öğrenemeyeceksiniz.

Para cezası almamak için Uzman Danışmanın işini durdurmanız gerekir (bu konuyu sizinle uzun süre tartıştık).

Mucize programcımız durmamız gerektiğini söylerse,

en çok kendini tanır ....., programlamada hiçbir şey anlamıyoruz

hisse senedi ticareti için uzmanlar ....

 
Михаил :

Sorunuzun cevabını öğrenemeyeceksiniz.

Ceza almamak için Uzman Danışmanın işini durdurmanız gerekir (bu konuyu sizinle uzun süre tartıştık).

Mucize programcımız durmamız gerektiğini söylerse,

en çok kendini tanır ....., programlamada hiçbir şey anlamıyoruz

hisse senedi ticareti için uzmanlar ....

Bana göre Dmitry Fedoseev bilgili biri olarak karşımıza çıkıyor , bu soruna mutlaka bir çözüm sunabileceğine inanıyorum.
 
Михаил :

Evet, çünkü Dmitry bir kişiye MT4 için neyin iyi olduğunu ve MT5'te tamamen "menekşe" tavsiyesinde bulunuyorsunuz!

MT5'in nasıl çalıştığı hakkında hiçbir fikriniz olmadığı paylaşımlarınızdan çok açık.

Ve uzman programlamanın utanç verici ilkesi ya da değil, yargılamak size göre değil!

Sen benim için bir otorite değilsin, ama küstah ukala bir çocuksun!

Kıskanç mısın? Pekala, bu doğru - yaşlı bir cennet kuşu olmaktansa genç bir köpek yavrusu olmak daha iyidir.
 
Алексей Тарабанов :
Kıskanç mısın? Pekala, bu doğru - yaşlı bir cennet kuşu olmaktansa genç bir köpek yavrusu olmak daha iyidir.
Bir gaz birikintisi içinde arttı ...
Neden: