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

 
ifitstrue :

Soru hakkında

Geçmiş H1'e bir trend çizgisi çizmeniz gerekirse, ilk M1 çubuğunun indeksi ne olur?

Ve satırın başında ve sonunda, onu nasıl bulacağınız net değil.

Açıkça açıklamadıysam özür dilerim.

Benim için zor.

İndekslere ek olarak, zaman da var ...

 
//---
   for ( int j= 0 ;j< OrdersTotal ();j++)
     {
       if ( OrderSelect (j,SELECT_BY_POS,MODE_TRADES)== false ) break ;
       if (OrderMagicNumber()!=MAGICZZ || OrderSymbol()!= Symbol ()) continue ;
   //--- check order type 
       if (OrderType()==OP_BUY)
        {
         //if(OrderProfit()>0.0)
           //{//Print("OrderProfitB()=",OrderProfit());
         if ( iClose ( NULL , PERIOD_CURRENT , 1 )- iOpen ( NULL , PERIOD_CURRENT , 1 )> 0.0 )
           { if ( iOpen ( NULL , PERIOD_CURRENT , 0 )- iClose ( NULL , PERIOD_CURRENT , 0 )> 0.0 )
              { Print ( "iCloseB()=" , iClose ( NULL , PERIOD_CURRENT , 0 ));
               if (!OrderClose(OrderTicket(),OrderLots(),Bid, 3 ,White))
                   Print ( "OrderClose error " , GetLastError ());
              }  
           }
        }
       if (OrderType()==OP_SELL)
        {
         //if(OrderProfit()>0.0)
           //{//Print("OrderProfitS()=",OrderProfit());
         if ( iOpen ( NULL , PERIOD_CURRENT , 1 )- iClose ( NULL , PERIOD_CURRENT , 1 )> 0.0 )
           { if ( iClose ( NULL , PERIOD_CURRENT , 0 )- iOpen ( NULL , PERIOD_CURRENT , 0 )> 0.0 )
              { Print ( "iCloseS()=" , iClose ( NULL , PERIOD_CURRENT , 0 ));
               if (!OrderClose(OrderTicket(),OrderLots(),Ask, 3 ,White))
                   Print ( "OrderClose error " , GetLastError ());
              }
           }
Merhaba! 2021.03.01_19:49 GMT+3. Ticaret sistemimin sonuçlarını iyileştirmek istedim. Ancak iOpen() ve iClose() işlevleri çalışmıyor gibi görünüyor. Strateji test cihazında, EA 175 anlaşmadan yalnızca 81'ini kontrol etti, öyle görünüyor ki, yukarıdaki kodda açıklanan koşullara göre kapatılmış. Bu kod çalışmıyor. Çalıştırmak için ne yapılabilir? Belki MetaQuotes programcılarıyla iletişime geçebilirsiniz? Şimdi strateji test cihazının günlüklerine bakacağım ve bu işlevlerin ne kadar nadiren çalıştığını yazacağım. ... Bulundu. 20210228.log. Saat 13:53:02.192, #155'i açın, iCloseB()=1.3434. Günlük dosyasını ekliyorum. Şimdi, umarım birileri bana bu iClose() ve iOpen() fonksiyonlarının çalışmasını sağlamak için ne yapacağımı söyler. Ve ticaret sistemi yeterince verimli değil. Her şey varken. 2021.03.01_20:12 GMT+3.
Dosyalar:
20210228.log  277 kb
 
MT5'te, belirli bir zaman diliminde yeni bir çubuğun ortaya çıkma zamanı gelmiştir (ve alıntılar devam ediyor gibi görünmektedir), ancak hala mevcut değildir. Bu ne? Fiyatlandırma özellikleri?
 
ifitstrue :

Soru hakkında

Geçmiş H1'e bir trend çizgisi çizmeniz gerekirse, ilk M1 çubuğunun indeksi ne olur?

Ve satırın başında ve sonunda, onu nasıl bulacağınız net değil.

Açıkça açıklamadıysam özür dilerim.

Benim için zor.

H1'in bir bar açılış zamanı var - bu iTime()

Çubuk indeksini bu sefer M1'de anlamak için iBarShift() var

Geriye iHighest() ve iLowest() kullanarak M1'deki minimum ve maksimum çubukları bulmak kalıyor.

 
Tekrar merhaba! 2021.03.01_20:24 GMT+3. 1304. sayfada bu forum başlığına dördüncü versiyonun strateji test cihazının benim için yavaş çalıştığını yazmıştım. Ve Vitaly Muzichenko beni yanlış anladı. Yorumu yazmayı bitirdiğim zamanı yazıyorum. Ve kimseyi aceleye getirmem. Soruma cevap olmamasına rağmen, cevabı tesadüfen buldum. Şimdi strateji test cihazıyla ne yapıyorum? Danışmanı test etmeden önce "optimizasyon" kutusunu işaretliyorum. optimize ediyorum. Henüz optimizasyona ihtiyacım olmamasına rağmen. Optimizasyon yaklaşık bir saniye sürer. Sonra "optimize et" seçeneğinin işaretini kaldırıyorum. Sonra danışmanın nasıl çalıştığını kontrol ederim. Ardından strateji test cihazı hızlı bir şekilde çalışır. Kırk dakika ya da bir saat değil. Bunu yazmanın benim görevim olduğunu hissettim. Belki birileri işine yarar. Ve terminalin dördüncü versiyonunda bir danışman yazıyorum çünkü komisyoncumun terminalin 4. versiyonunda ruble hesapları var, ancak 5. versiyonunda yok. ABD doları ile uğraşmak istemiyorum: devasa bir kamu borç tavanı var ve komisyoncum dolarlarımı piyasa dışı bir oranda rubleme çeviriyor. her şey varken. 20:39 GMT+3.
 
Николай Никитюк :
Merhaba! 2021.03.01_19:49 GMT+3. Ticaret sistemimin sonuçlarını iyileştirmek istedim. Ancak iOpen() ve iClose() işlevleri çalışmıyor gibi görünüyor. Strateji test cihazında, EA 175 anlaşmadan yalnızca 81'ini kontrol etti, öyle görünüyor ki, yukarıdaki kodda açıklanan koşullara göre kapatılmış. Bu kod çalışmıyor. Çalıştırmak için ne yapılabilir? Belki MetaQuotes programcılarıyla iletişime geçebilirsiniz? Şimdi strateji test cihazının günlüklerine bakacağım ve bu işlevlerin ne kadar nadiren çalıştığını yazacağım. ... Bulundu. 20210228.log. Saat 13:53:02.192, #155'i açın, iCloseB()=1.3434. Günlük dosyasını ekliyorum. Şimdi, umarım birileri bana bu iClose() ve iOpen() fonksiyonlarının çalışmasını sağlamak için ne yapacağımı söyler. Ve ticaret sistemi yeterince verimli değil. Her şey varken. 2021.03.01_20:12 GMT+3.

Kodla ilgili her şey yolunda görünüyor, ancak kayma kafamı karıştırıyor ... çok küçük, daha fazla kayma koy ve kontrol et

 
Alexey Viktorov :
İyi tanrı! Bir şey mi istedim? Ben bir şey istedim mi? Beni kime götürüyorsun?
Yanlış, üzgünüm. buna değil ve orada değil. )
 
Николай Никитюк :
Merhaba! 2021.03.01_19:49 GMT+3. Ticaret sistemimin sonuçlarını iyileştirmek istedim. Ancak iOpen() ve iClose() işlevleri çalışmıyor gibi görünüyor. Strateji test cihazında, EA 175 anlaşmadan yalnızca 81'ini kontrol etti, öyle görünüyor ki, yukarıdaki kodda açıklanan koşullara göre kapatılmış. Bu kod çalışmıyor. Çalıştırmak için ne yapılabilir? Belki MetaQuotes programcılarıyla iletişime geçebilirsiniz? Şimdi strateji test cihazının günlüklerine bakacağım ve bu işlevlerin ne kadar nadiren çalıştığını yazacağım. ... Bulundu. 20210228.log. Saat 13:53:02.192, #155'i açın, iCloseB()=1.3434. Günlük dosyasını ekliyorum. Şimdi, umarım birileri bana bu iClose() ve iOpen() fonksiyonlarının çalışmasını sağlamak için ne yapacağımı söyler. Ve ticaret sistemi yeterince verimli değil. Her şey varken. 2021.03.01_20:12 GMT+3.

Bu şekilde yeniden yazmaya çalışın çünkü aynı şey.

         if (Close[ 1 ]-Open[ 1 ]> 0.0 )
           {
             if (Close[ 0 ]-Open[ 0 ]> 0.0 )

ya da öyle yazıyorum

         if (Close[ 1 ]>Open[ 1 ])
           {
             if (Close[ 0 ]>Open[ 0 ])
              {
 
klub2003 :

Merhaba!

Böyle bir görev:
Fiyat MA'yı aşağı veya yukarı geçer.
Geçilen puanların sayısını hesaplamada daha fazla kullanmak için onu hatırlamak gerekir.

İşte bunu nasıl anlıyorum:

çift FixPrice; // değişken

bool Düzeltme=yanlış; // işaretleyici

if ( Düzeltme==yanlış) {

if ( Kapat[0] > MA_lo ) FixPrice = Kapat[0];
} // fiyat MA'yı geçene kadar bir ölçüm yapın

if ( Kapat[0] < MA_lo ) Fix=true;

if ( Fix==true) FixPrice_L = FixPrice ;

Ve işte fiş - fiyat hatırlanmıyor!

Yardımın için çok minnettar olurum!
 //+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
//---

double      FixPrice;         // переменная ТАК БУДЕТ ЗАПОМИНАТЬСЯ. ГЛОБАЛЬНАЯ ПЕРЕМЕННАЯ
bool        Fix = false ;       // маркер
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (Fix == false )
     {
       if (Close[ 0 ] > MA_lo)
         FixPrice = Close[ 0 ];
     }                                                                               // делаем замер пока цена не пересечет МА
   if (Close[ 0 ] < MA_lo)
      Fix = true ;
   if (Fix == true )
      FixPrice_L = FixPrice ;
//+------------------------------------------------------------------+
  }
//+------------------------------------------------------------------+

Değerin bu şekilde hatırlanmasını istersiniz.

Ama unutmayın ki mumun açılışında

Close[0]=Open[0] 
и Close[0]=High [0] и Close[0]=Low[0]



Yani anlık ihtiyacınız varsa, gerçek zamanlı kullanmak daha iyidir

 double Bidd= NormalizeDouble (Bid, Digits ); если цена сверху или
double Askk= NormalizeDouble (Askk, Digits ); если цена снизу МА

double MA_lo= NormalizeDouble (MA_lo, Digits );

Şaşırmamak için karşılaştırılacak tüm fiyatları normalleştirmek daha iyidir :)

 
MakarFX :

FIBO takas p1 ve p2'yi çevirmek için

uyarı konusunda yardımcı olmayacağım(

MakarFX :

FIBO takas p1 ve p2'yi çevirmek için

uyarı konusunda yardımcı olmayacağım(

Merhaba, teşekkürler, iki farklı çözümünüz var, sizinki en kolay olanı ....

Neden: