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

 
Mikhail Tkachev :

Lütfen topluluğa yardım edin...
MQL5 global nesneleri nasıl düzgün bir şekilde bildirilir ve oluşturulur?

Küreseller burada ilan edilir

 //|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link        " https://www.mql5.com "
#property version    "1.00"
//--- 
int       Global_1;
double    Global_2;
string    Global_3;
long      Global_4;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
 
Alexey Viktorov :

Belgeleri okuman için seni nasıl göndereceğimi bile bilmiyorum. Okuduysam ve normal işlev bir nedenden dolayı uymuyorsa, hemen söylemeliydim ...

Eh, "gönder" konusunda, kimi ve nereye göndereceğine moderatörler karar veriyor!... Bir yasaklamaya, örneğin... Bil bakalım kim... Normal işlevler hakkında, ben hiçbir şey görmedim. json formatında ayrıştırma ve json dosyalarını kaydetme/yazma için belgeler. Ama sen, her zamanki gibi, belgelerin gizli bir bölümünü biliyorsun, hepsinin orada olduğu yer... Ama ben bilmiyordum... Şey, köknar ağacı çubukları. Yazık bana... Şimdi Alexey beni kemerden kapatacak mı?... :)

 

yanıp sönen millet aynı anda en fazla 2 sipariş açacağım böyle koyuyorum bir tane açmıyor pos_totalsız açılıyor


void OPENORDER( string ord)

  {
     int pos_total= PositionsTotal ();
     double priceL=m_symbol.Ask();
   if (pos_total>= 2 )
   {
   if (ord== "Sell" )      
   
         //--- check for free money
             if (m_account.FreeMarginCheck( Symbol (), ORDER_TYPE_BUY ,my_lot,priceL)< 0.0 )
               printf ( "We have no money. Free Margin = %f" ,m_account.FreeMargin());
             else
       if (!m_trade.Sell(my_lot, Symbol (),m_symbol.Bid(),my_SL,my_TP, "" ))
         Print ( "BUY_STOP -> false. Result Retcode: " ,m_trade.ResultRetcode(),
               ", description of Retcode: " ,m_trade.ResultRetcodeDescription(),
               ", ticket of order: " ,m_trade.ResultOrder());                     // Если sell, то не открываемся
     double priceS=m_symbol.Bid();
   if (ord== "Buy" )  
         //--- check for free money
             if (m_account.FreeMarginCheck( Symbol (), ORDER_TYPE_SELL ,my_lot,priceS)< 0.0 )
               printf ( "We have no money. Free Margin = %f" ,m_account.FreeMargin());
             else
       if (!m_trade.Buy(my_lot, Symbol (),m_symbol.Ask(),my_SL,my_TP, "" ))
 
         Print ( "Buy -> false. Result Retcode: " ,m_trade.ResultRetcode(),
               ", description of result: " ,m_trade.ResultRetcodeDescription(),
               ", ticket of deal: " ,m_trade.ResultDeal());
   return ;
 }
}


Neyi yanlış yapıyorum?

 
Eugen8519 :

yanıp sönen millet aynı anda en fazla 2 sipariş açacağım böyle koyuyorum bir tane açmıyor pos_totalsız açılıyor



Neyi yanlış yapıyorum?

Zaten 2 veya daha fazla pozisyonunuz varsa açmak için yazdınız
 if (pos_total < = 2 )
 
Alexey Viktorov :

Makar, eskiden doğru olanı yapardın ama şimdi aptalca bir şey yapmak istiyorsun...

Yaklaşık 5 sınıf için matematiği hatırlayın. (-3)-(-7) ne kadar olacak ve (-3)+(-7) ne kadar olacak

Bir hesap makinesinde kontrol etmek zordur, Excell size yardımcı olacaktır.


Alexey zaten 5. sınıf için matematiği biliyor. Bravo, Alexey. Sadece Kaptan Apaçık. :)

 
Mihail Matkovskij :

Alexey zaten 5. sınıf için matematiği biliyor. Bravo, Alexey.

Bu durumda yanılıyorsunuz.
 
MakarFX :

Evet teşekkür ederim. Hemen sonuçlara atladım. Ben iyiyim)

Soru, fonksiyonun negatif değerlere sahip olabileceği değil, neden kâra takas ve komisyon eklediğimizdi. Sen ve Alexey muhtemelen anlamadınız.

Tsaryoff5614 , tarihteki siparişlerin karını hesaplamak istedi ve işlevine (İngilizce konuşuyorsanız) son kayıp adı verildi.

https://www.mql5.com/en/forum/160683/page1559#comment_23786144

Kendimle beni karıştırdım. Ve sonra sen ve Alexei var... Madhouse...

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.08.02
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
MakarFX :
Bu durumda yanılıyorsunuz.

tavsiye için teşekkürler ama bu şekilde filtrelemez, beş pozisyona kadar açılır

   if (InpTrailingOrderLimit== 0 )
         return ;
   for ( int i= PositionsTotal ()- 1 ;i>= 0 ;i--) // returns the number of open positions
       if (m_position.SelectByIndex(i))
         if (m_position. Symbol ()==m_symbol.Name() && m_position.Magic()==m_magic)
           {
             if (m_position.PositionType()== POSITION_TYPE_BUY )
              {
               if (m_position.PriceCurrent()-m_position.PriceOpen()>ExtTrailingOrderLimit+ExtTrailingOrderStep)
                   if (m_position.StopLoss()<m_position.PriceCurrent()-(ExtTrailingOrderLimit+ExtTrailingOrderStep))        
                       OPENORDER( "Buy" );
              
                  
              }
             else
              {
               if (m_position.PriceOpen()-m_position.PriceCurrent()>ExtTrailingOrderLimit+ExtTrailingOrderStep)
                   if ((m_position.StopLoss()>(m_position.PriceCurrent()+(ExtTrailingOrderLimit+ExtTrailingOrderStep))))
                        OPENORDER( "Sell" );


bu ona pozisyonları açmasını söyler, pos_total nereye eklerse, yardımcı olmaz

 
Eugen8519 :

tavsiye için teşekkürler ama bu şekilde filtrelemez, beş pozisyona kadar açılır


bu ona pozisyonları açmasını söyler, pos_total nereye eklerse, yardımcı olmaz

temizlemeye gerek yok
 if (pos_total < = 2 )

yazdığım gibi işareti değiştirmeniz gerekiyor

 
Mihail Matkovskij :

Soru, fonksiyonun negatif değerlere sahip olabileceği değil, neden kâra takas ve komisyon eklediğimizdi . Sen ve Alexey muhtemelen anlamadınız.

Tsaryoff5614 karı hesaplamak istedi ve işlevine son kayıp adı verildi. Kendimle beni karıştırdım. Ve sonra sen ve Alexei var... Madhouse...

Ardından, dönem için tüm karı hesaplamak için ekleyin.