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

 
Ve bir şey daha - danışman başlatıldığında, o anda hiçbir sinyal olmamasına rağmen, ilk mumda bir sipariş açılır. Nasıl kaldırılabilir?
Dosyalar:
 
artem artem açılış fiyatlarına dayanıyorsa - 29 sipariş?

+ birkaç emir, eğer keneler tarafından açıldıysa, açılış fiyatından olmadığı açıktır. gösteren bir ekran görüntüsü ekledim

denemek

Dosyalar:
artem.mq4  13 kb
 
Şimdi hem tikler hem de açılış fiyatı ile aynı sayıda emir açıyor. Aynı dönem için toplam siparişler - 23 sipariş. Sadece şimdi, nedense, giriş 4. mumdan değil, 7. mumdan.
 
artem artem toplam siparişler - 23 sipariş. Sadece şimdi, nedense, giriş 4. mumdan değil, 7. mumdan.

Gereksiz tüm kaldırıldı ... olması gerektiği gibi çalışıyor

Dosyalar:
artem.mq4  11 kb
 
Söylesene, terminaldeki danışman ayarları satırlarını silinemeyecek şekilde sınırlandırmanın bir yolu var mı? Eğer koda extern string yazarsanız, bu, satırı düzenlemeyi mümkün kılar ve yanlışlıkla sildiyseniz, geri yüklemek için "reset" tuşuna basmanız gerekir, ancak daha sonra tüm ayarlar sıfırlanır. Tabii ki önceden bir set dosyasına kaydedilebilirler, ama sadece merak ediyorum bir "taş tablet" yapmanın mümkün olup olmadığını merak ediyorum.
 

Hem kenelerde hem de açılış fiyatında kontrol ettim... RA-BO-TA-ET!!!!

MakarFX , çok teşekkür ederim!!! 2 haftadır bu bulmaca için endişeleniyorum ve bugüne kadar hepsi boşuna. Çok teşekkür ederim, bir kez daha! Sadece birkaç açıklamam kaldı ve sizi daha fazla geciktirmeyeceğim ve çok fazla zamanınız boşa gitti. Aslında, ilgilendiğiniz şey şu:


1. Anladığım kadarıyla, "onay mumlarının" sayısını değiştirmek istersem, o zaman sadece bir sayıyı diğerine sabit olarak değiştirmem gerekiyor, o kadar mı?

 void OnTick ()
  {
//---
   StopLevel = MarketInfo( Symbol (), MODE_STOPLEVEL); 
   //---
   if (newbar!=Time[ 0 ])
     {
       if (CheckForOpen()!=Start)
        {Start=CheckForOpen(); cnt= 1 ;}
       else
        {cnt+= 1 ;}
       //---
       if (cnt== 8 )
        {
         // Открытие ордера по методу Пуриа
         if (CheckForOpen()== 0 ) // Если сигнал для покупок 
           {
             if ( OrderSend ( Symbol (),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss* Point ,Ask+TakeProfit* Point , "" ,MagicNumber, 0 ,Blue))
              { Print ( "BUY OK" );}
               else { Print ( GetLastError ());}
           } 
         if (CheckForOpen()== 1 ) // Если сигнал для продаж 
           {
             if ( OrderSend ( Symbol (),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss* Point ,Bid-TakeProfit* Point , "" ,MagicNumber, 0 ,Red))
              { Print ( "SELL OK" );}
               else { Print ( GetLastError ());}
           }
        }   
      newbar=Time[ 0 ];
     }
  }

2. Expert Advisor başlatıldığında, sinyal olmamasına rağmen ilk mumda ilk SATIŞ emri açılır. Yani, bu ilk sipariş gereksizdir, başlangıçta, danışman ilk siparişte hemen bir anlaşma açmamalıdır, çünkü danışman yeni başladı. Bu nasıl düzeltilebilir? Bundan Init'in sorumlu olduğuna dair bir varsayımım var ve onu "yanlış" olarak değiştirmeli miyim, hatta bu Init'i kaldırmalı mıyım?

 bool OrderBuy = true , OrderSell = true , Order = false , Init = true ;

3. Ve son şey - her şeyi olduğu gibi bırakırsanız ve aynı anda birkaç döviz çiftinde işlem yapmaya başlarsanız - her şey olması gerektiği gibi çalışacak mı? Veya herhangi bir bug vs olmaması için koda başka bir şey yazılmalıdır. , özellikle bu EA aynı anda birkaç döviz çifti üzerinde çalışacaksa?

Aslında, beni ilgilendiren tek şey bu, AMA her durumda - tekrar, çok teşekkür ederim! Kendim çözebilseydim, xs daha ne kadar zaman geçmiş olabilirdi)

 
artem artem # :

Hem kenelerde hem de açılış fiyatında kontrol ettim... RA-BO-TA-ET!!!!

MakarFX , çok teşekkür ederim!!! 2 haftadır bu bulmaca için endişeleniyorum ve bugüne kadar hepsi boşuna. Çok teşekkür ederim, bir kez daha! Sadece birkaç açıklamam kaldı ve sizi daha fazla geciktirmeyeceğim ve çok fazla zamanınız boşa gitti. Aslında, ilgilendiğiniz şey şu:


1. Anladığım kadarıyla, "onay mumlarının" sayısını değiştirmek istersem, o zaman sadece bir sayıyı diğerine sabit olarak değiştirmem gerekiyor, o kadar mı?

2. Expert Advisor başlatıldığında, sinyal olmamasına rağmen ilk mumda ilk SATIŞ emri açılır. Yani, bu ilk sipariş gereksizdir, başlangıçta, danışman ilk siparişte hemen bir anlaşma açmamalıdır, çünkü danışman yeni başladı. Bu nasıl düzeltilebilir? Bundan Init'in sorumlu olduğuna dair bir varsayımım var ve onu "yanlış" olarak değiştirmeli miyim, hatta bu Init'i kaldırmalı mıyım?

3. Ve son şey - her şeyi olduğu gibi bırakırsanız ve aynı anda birkaç döviz çiftinde işlem yapmaya başlarsanız - her şey olması gerektiği gibi çalışacak mı? Veya herhangi bir bug vs olmaması için koda başka bir şey yazılması gerekiyor. , özellikle bu EA aynı anda birkaç döviz çifti üzerinde çalışacaksa?

Aslında, beni ilgilendiren tek şey bu, AMA her durumda - bir kez daha, çok teşekkürler! Kendim çözebilseydim, xs daha ne kadar zaman geçmiş olabilirdi)

1) Evet, bunlar "onay mumları" sayısının değerleridir.

2) Hayır, ilkinde açılmaz, yalnızca belirli sayıda "onay mumundan" sonra açılır

3) Sihri değiştirin ve herhangi bir çifte bahis yapın

Magic, harici bir değişken yapmak daha iyidir

 
Ivan Butko # :
Söylesene, terminaldeki danışman ayarları satırlarını silinemeyecek şekilde sınırlandırmanın bir yolu var mı? Eğer koda extern string yazarsanız, bu, satırı düzenlemeyi mümkün kılar ve yanlışlıkla sildiyseniz, geri yüklemek için "reset" tuşuna basmanız gerekir, ancak daha sonra tüm ayarlar sıfırlanır. Tabii ki önceden bir set dosyasına kaydedilebilirler, ama sadece merak ediyorum bir "taş tablet" yapmanın mümkün olup olmadığını merak ediyorum.
ENUM yap
 
MakarFX # :
ENUM yap

deneyeceğim, teşekkürler

 
Ivan Butko # :

deneyeceğim, teşekkürler

 enum MODE
  {
   MODE_1= 1 ,     // Мертвая строка
  };
//--- input parameters
input MODE mode= MODE_1; // Эта строка