MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 560

 
Artyom Trishkin :

Sorular garip cevaplar düşünce akışında zor bir şey gurulduyor düşünce akışının yulaf lapasında tutmak imkansız lütfen ...

Ve hangi dili konuşuyorsun?

 
Alexey Viktorov :

Ve hangi dili konuşuyorsun?

Soru soran için anlaşılır olduğunu düşünüyorum :)
 

Tünaydın! İstemi lütfen. Bir seviyeden yanlış bir koparma ticareti için ücretsiz bir SCRIPT nereden alınır.

 
barmaley1 :

Tünaydın! İstemi lütfen. Bir seviyeden yanlış bir koparma ticareti için ücretsiz bir SCRIPT nereden alınır.

Senaryo burada yardımcı olmaz.

 

Merhaba! Arkadaşlar lütfen söyleyin.

Bir siparişi her açtığımda, daha sonra onunla çalışmak için açılan siparişin bazı verilerini hatırlamam gerekiyor.

Tüm bunları yapıya kaydetmeniz gerektiğini düşünüyorum:

- giriş ücreti

- SL'nin başa baş noktasına taşınıp taşınmadığı

- ters hesaplama için en yüksek fiyat


Her onayda , açık emirlerin her biri için hesaplamalar yapılması gerekir.

Söyle bana, lütfen, nasıl doğru yapılacağını.

 
Decromor :

Merhaba! Arkadaşlar lütfen söyleyin.

Bir siparişi her açtığımda, daha sonra onunla çalışmak için açılan siparişin bazı verilerini hatırlamam gerekiyor.

Tüm bunları yapıya kaydetmeniz gerektiğini düşünüyorum:

- giriş ücreti

- SL'nin başa baş noktasına taşınıp taşınmadığı

- ters hesaplama için en yüksek fiyat


Her onayda , açık emirlerin her biri için hesaplamalar yapılması gerekir.

Söyle bana, lütfen, nasıl doğru yapılacağını.

Temel olarak, her şeyi kendiniz tanımladınız))

Kodda şöyle görünecek:

   for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
   {
       if (! OrderSelect (i, SELECT_BY_POS ))          
         continue ;
         
       if ( OrderSymbol () != Symbol ())
         continue ;  
      
       if (m_nMagicNumber != OrderMagicNumber ()) 
         continue ;

       if ( OrderType () == OP_BUY )
         if (!SaveOrderInfo(m_stBuySeries))
             return false ;

       if ( OrderType () == OP_SELL )
         if (!SaveOrderInfo(m_stSellSeries))
             return false ;
   }

m_nMagicNumber - EA sipariş kimliği,

m_stBuySeries ve m_stSellSeries - belirli bir türdeki tüm bulunan siparişlerde veri depolayan yapılar. Örneğin, bunları şu şekilde tanımlayabilirsiniz:

 struct SeriesInfo
{
   int             nLastOrderTicket;                                                                 // Тикет последнего открытого ордера
   int             nOrdersCnt;

   double          fSeriesTotalProfit;
   double          fVolumeSumm;
   double          fMinOrdersPrice;
   double          fMaxOrdersPrice;
   datetime        dtLastOrderTime;                                                                 // Время открытия последнего ордера
   OrderInfo      starrOrderInfo[];   
   
   bool            Init()
   {  
      nOrdersCnt = 0 ;
      nLastOrderTicket = 0 ;
      fSeriesTotalProfit = 0.0 ;
      fVolumeSumm = 0.0 ;
      fMinOrdersPrice = DBL_MAX ;
      fMaxOrdersPrice = 0.0 ;
      dtLastOrderTime = 0 ;
       return ArrayResize (starrOrderInfo, 0 , 100 ) == 0 ;
   }
};

Bu tür yapılar için SaveOrderInfo işlevi şöyle olacaktır:

 bool SaveOrderInfo(SeriesInfo &stSeriesInfo)
{
   // Проверка возможности добавления ордера в серию
   int nTotal = ArraySize (stSeriesInfo.starrOrderInfo);
   if ( ArrayResize (stSeriesInfo.starrOrderInfo, nTotal + 1 , 100 ) < 0 )
   {
       Alert ( MQLInfoString ( MQL_PROGRAM_NAME ), ( TerminalInfoString ( TERMINAL_LANGUAGE ) == "Russian" )? ": нехватка памяти для записи данных об очередном ордере. Эксперт отключен." : 
                                                                                                   ": unable to allocate the memory for next order. Expert is turned off." );
       return false ;
   }
   
   // Запись ордера
   stSeriesInfo.starrOrderInfo[nTotal].nType = OrderType ();
   stSeriesInfo.starrOrderInfo[nTotal].nTicket = OrderTicket ();
   stSeriesInfo.starrOrderInfo[nTotal].fVolume = OrderLots ();
   stSeriesInfo.starrOrderInfo[nTotal].fTP = OrderTakeProfit ();
   stSeriesInfo.starrOrderInfo[nTotal].fSL = OrderStopLoss ();
   stSeriesInfo.starrOrderInfo[nTotal].fOpenPrice = OrderOpenPrice ();
   stSeriesInfo.starrOrderInfo[nTotal].fProfit = OrderProfit () + OrderSwap () + OrderCommission ();
   stSeriesInfo.starrOrderInfo[nTotal].dtOpenTime = OrderOpenTime ();
   
   stSeriesInfo.fSeriesTotalProfit += stSeriesInfo.starrOrderInfo[nTotal].fProfit;
   stSeriesInfo.fVolumeSumm += stSeriesInfo.starrOrderInfo[nTotal].fVolume;
   stSeriesInfo.fMinOrdersPrice = MathMin (stSeriesInfo.fMinOrdersPrice, OrderOpenPrice ());
   stSeriesInfo.fMaxOrdersPrice = MathMax (stSeriesInfo.fMaxOrdersPrice, OrderOpenPrice ());
   
   if ( OrderOpenTime () > stSeriesInfo.dtLastOrderTime)
   {
      stSeriesInfo.dtLastOrderTime = OrderOpenTime ();
      stSeriesInfo.nLastOrderTicket = OrderTicket ();
   }
   
   return true ;
}
 

biraz konu dışı.

https://www.finam.ru/profile/commodity/alüminyum/export/?market=24

dosyayı aldım.

Onu bir karaktere sığdırmaya çalışıyorum.

sonuç iç karartıcı

spsb

 
Ihor Herasko :

Temel olarak, her şeyi kendiniz tanımladınız))

Kodda şöyle görünecek:

m_nMagicNumber - EA sipariş kimliği,

m_stBuySeries ve m_stSellSeries - belirli bir türdeki tüm bulunan siparişlerde veri depolayan yapılar. Örneğin, bunları şu şekilde tanımlayabilirsiniz:

Bu tür yapılar için SaveOrderInfo işlevi şöyle olacaktır:

Bu kadar ayrıntılı yardım için çok teşekkür ederim!

 

Tünaydın!

Beyler, bana kodu, bir danışmanı bir hesaba nasıl bağlayacağınızı söyleyin (son güncelleme için).

Çok teşekkürler.

 
Aleksandr Lishchenko :

Tünaydın!

Beyler, bana kodu, bir danışmanı bir hesaba nasıl bağlayacağınızı söyleyin (son güncelleme için).

Çok teşekkürler.

Sadece:

 if ( AccountInfoInteger ( ACCOUNT_LOGIN ) != <номер счета>)
   return ;