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

 

Selamlar. MQL4. "Yılan" oyununu bir ticaret danışmanına kaydettirmek istiyorum.

Söyleyin lütfen, OnTimer() olaylarının meydana gelme sıklığını 1'den küçük, örneğin 0.7 gibi belirleyen Expert Advisor'da saniye sayısını ayarlamak mümkün müdür?

Veya kodun bir bölümünün periyodik olarak yürütülmesini uygulamak için başka yollarla, ancak böylece OnTick() içindeki yürütülebilir dosyayı geciktirmez mi?

 
Andrey Sokolov :

Selamlar. MQL4. "Yılan" oyununu bir ticaret danışmanına kaydettirmek istiyorum.

Söyleyin lütfen, OnTimer() olaylarının meydana gelme sıklığını 1'den küçük, örneğin 0.7 gibi belirleyen Expert Advisor'da saniye sayısını ayarlamak mümkün müdür?

Veya kodun bir bölümünün periyodik olarak yürütülmesini uygulamak için başka yollarla, ancak böylece OnTick() içindeki yürütülebilir dosyayı geciktirmez mi?

https://docs.mql4.com/en/eventfunctions/eventsetmillisecondtimer
EventSetMillisecondTimer - Работа с событиями - Справочник MQL4
EventSetMillisecondTimer - Работа с событиями - Справочник MQL4
  • docs.mql4.com
Указывает клиентскому терминалу, что для данного эксперта или индикатора необходимо генерировать события таймера с периодичностью менее одной секунды. нужно получать события таймера чаще, чем один раз в секунду. Если вам достаточно обычного таймера с периодом в несколько секунд, то используйте EventSetTimer(). Обычно эта функция должна...
 

Aşağıdaki kodun çıktısı 牖漠摲牥⁳湩潦〉〮र〲थ⸰〲थ⸰㠉┰〉〮र

Ve metin testini göstermeli

Dosyalar Files\\Test\\ klasöründedir.

İşlev, tanıtıcının doğru olduğunu, 1'e eşit olduğunu yazar ve hemen GetLastError 5008 Geçersiz tanıtıcı hatası yazar ....

Nerede kazılır?

 //+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   core();
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {

  }
//+------------------------------------------------------------------+
void core()
  {
   string value = "" , name = "" ;

   name =   "Test" + "\\test.csv" ;
   Print ( FileIsExist (name));

   ResetLastError ();

   int m_hendle = - 1 ;
   m_hendle = FileOpen (name, FILE_READ | FILE_WRITE | FILE_CSV );
   if (m_hendle != INVALID_HANDLE )
     {
       Print (( string )m_hendle + "    " + name + " [" + ( string ) FileSize (m_hendle) + "]" + ( string ) GetLastError ());
       while (! FileIsEnding (m_hendle))
        {
         string sCurrent = FileReadString (m_hendle);
         Print ( "sCurrent = " , sCurrent);
        }
       FileClose (m_hendle);
     }
  }
//+------------------------------------------------------------------+
 
Vladimir Pastushak :

Aşağıdaki kodun çıktısı 牖漠摲牥⁳湩潦〉〮र〲थ⸰〲थ⸰㠉┰〉〮र

Koronavirüse benziyor

 

Merhaba ... tek seferlik bir mt5 danışmanını 4'e dönüştürmeme yardım edin lütfen. Kendi kendine çalışıyor, ne arzu ne de ihtiyaç var, zorsa anlayıp puan veririm, ihtiyaç büyük değil...

Zaten sorulan ve bazı konulara yapılan referanslara yanıt olarak, ayarların nasıl öğrenileceği veya birisine verileceği, " Kâse uzmanı ". Forumları okurken, insanlar yardım edecek gibi görünüyordu ... ki bu ilginç, eğer insanlar pahalı olmayan bir şeyi para için isterseler ... bedavaya yardım ediyorlar ve ben sadece parasız istediğimde, görünüşe göre bunu yapmayı düşünüyorlar. vekil ve nasharu isteyen biri ol. ..burada ve şimdi para olsaydı, hemen öderdim ve dalga geçmezdim, ama yoklar ve ortaya çıktıklarında artık gerekli olmayacaklar ... daha kolay gol atmak, ama yine de ... umut son ölür.


Daha sonra ödeyebilirim, göründüklerinde ...

Dosyalar:
Lift.mq5  9 kb
 
eKpuBu4 :

Merhaba ... tek seferlik bir mt5 danışmanını 4'e dönüştürmeme yardım edin lütfen. Kendi kendine çalışıyor, ne arzu ne de ihtiyaç var, zorsa anlayıp puan veririm, ihtiyaç büyük değil...

Gerisi nerede?

Uzman.mqh>

SignalTRIX.mqh>


SignalStoch.mqh>

İzleyenFixedPips.mqh>

MoneyFixedRisk.mqh>

 
Merhaba. mql4 programlamada bilgiyle parlamam
 input double    Lots= 0.01 ;     //Lots size
input int       Tprof= 1000 ;     //TakeProfit
input int       TreilSt= 100 ;     //Trailing Stop
input int       TrStKor= 10 ;     //The size of the correction Trailing Stop
input int       Magik= 1001012 ;   //Magic Number
extern int Bars_left = 5 ;
extern int Bars_right = 5 ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   static double Upf,Lowf;
   double Tupf= 0 ,Tlowf= 0 ;
   int i,k;
   for (i= 2 ; i< 100 ; i++)
     {
      Tupf= iCustom ( Symbol (), 0 , "takbir" ,Bars_left,Bars_right, 0 ,i);
       if (Tupf> 0 )
         break ;
     }
   for (k= 2 ; k< 100 ; k++)
     {
      Tlowf= iCustom ( Symbol (), 0 , "takbir" ,Bars_left,Bars_right, 1 ,k);
       if (Tlowf> 0 )
         break ;
     }
//----Open position
//if(i>0) Print("i = ", i, " k = ",k);
   int total= OrdersTotal ();
/*if(total<1)
      {*/
    
   if (Ask>Tupf+ 15 * _Point && Tupf!=Upf)
     {
       double StL= NormalizeDouble (Tlowf, _Digits );
       int ticket= OrderSend ( NULL ,OP_BUY,Lots,Ask, 30 ,StL,Bid+Tprof* _Point , NULL ,Magik, 0 , clrBlue );
       if (ticket< 0 )
        {
         Print ( "OrderSend error #" , GetLastError ());
        }
       else { Print ( "Ask=" ,Ask, "Upf=" ,Upf, " StL=" ,StL); Upf=Tupf;}
     }
   if (Bid<Tlowf- 15 * _Point && Tlowf!=Lowf)
     {
       double StL= NormalizeDouble (Tupf, _Digits );
       int ticket= OrderSend ( NULL ,OP_SELL,Lots,Bid, 30 ,StL,Ask-Tprof* _Point , NULL ,Magik, 0 , clrRed );
       if (ticket< 0 )
        {
         Print ( "OrderSend error #" , GetLastError ());
        }
       else { Print ( "Bid=" ,Bid, "Lowf=" ,Lowf, " StL=" ,StL);   Lowf=Tlowf;}
     }
// }
//----Trailing Stop operation
   for ( int cni= 0 ;cni<total;cni++)
     {
       if (! OrderSelect (cni,SELECT_BY_POS,MODE_TRADES))
         continue ;
       if (OrderMagicNumber()==Magik && TreilSt> 0 )
        {
         if (OrderType()==OP_BUY)
           {
             if (Bid-OrderOpenPrice()> _Point *TreilSt)
              {
               if (OrderStopLoss()<Bid- _Point *TreilSt-TrStKor* _Point )
                 {
                   //--- modify order and exit
                   if (!OrderModify(OrderTicket(),OrderOpenPrice(),Bid- _Point *TreilSt,OrderTakeProfit(), 0 , clrBlue ))
                     Print ( "OrderModify error " , GetLastError ());
                   return ;
                 }
              }
           }
         if (OrderType()==OP_SELL)
           {
             if ((OrderOpenPrice()-Ask)> _Point *TreilSt)
              {
               if (OrderStopLoss()>Ask+ _Point *TreilSt+ _Point *TrStKor)
                 {
                   //--- modify order and exit
                   if (!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+ Point *TreilSt,OrderTakeProfit(), 0 , clrRed ))
                     Print ( "OrderModify error " , GetLastError ());
                   return ;
                 }
              }
           }
        }
     }
  }

Ancak aşağıdakileri nasıl düzelteceğimi anlayamıyorum:

 double StL= NormalizeDouble (Tupf, _Digits );

Durdurma kaybı önceki "üst fraktalda" ayarlanır

Ve ihtiyacınız olan:

Son alt fraktal bozulursa, zararı durdur alt fraktal ile koparma arasındaki maksimum fiyata yerleştirilir.

Son üst fraktal bozulursa - zararı durdur üst fraktal ve koparma arasındaki minimum fiyata yerleştirilir

Zaman aracılığıyla bir fraktalın oluşumunu ayarlamaya ve indeksini belirlemeye çalışıyorum, ancak şimdiki zamanın nasıl uygulanacağını anlamıyorum ve şimdiki zamandan fraktata doğru arama yapıyorum, her seferinde bir sıraya kadar çubuklar arasında sıralama yapıyorum. açılır?

Belki bir siparişin açılışı sırasında nasıl bir şey aranır? Ve sıranın değiştirilmesi yoluyla, durağın değiştirilmesi vb. Ama nasıl olduğunu anlayamıyorum.

Lütfen yardım et. Sevgili profesyoneller, 5 dakikanızı ayırın.

Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Технические индикаторы требуют для своих расчетов указания значений цен и/или значений объемов, на которых они будут считаться. Существуют 7 предопределенных идентификаторов перечисления ENUM_APPLIED_PRICE, для указания нужной ценовой базы расчетов. Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается...
 
v0van1990 :
Lütfen yardım et. Sevgili profesyoneller, 5 dakikanızı ayırın.

Burada düzeltmeniz gerekiyor.

     {
      Tupf= iCustom ( Symbol (), 0 , "takbir" ,Bars_left,Bars_right, 0 ,i);
       if (Tupf> 0 )
         break ;
     }
 
MakarFX :

Burada düzeltmeniz gerekiyor.

Bu fonksiyon bana standart olmayan son oluşan fraktallar hakkında bilgi verir ve EA'nın başında bu standart olmayan fraktalları değiştiririm.

Veya bir hindiye bir fonksiyon ekleyin - son fraktalı kırmadan önce yüksek veya düşük hakkında bilgi? yoksa yeni bir fraktalın oluşumu sırasında mı?

haklı mıyım?