Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 701

 

Bu şekilde karar verdi:

int nday;

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 && SelBuyDaily==Vhodim1 && proverka==1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

   nday=DayOfYear();

  }

  if(OrderSelect(x,SELECT_BY_TICKET)==true)

 {

  if((OrdersTotal()>0 && OrderCloseTime()==0 && OrderType()==OP_BUY) && (nday<DayOfYear() || OrderOpenTime()<iTime(NULL,0,0)))

  {

   if(pokupaem>0 && prodaem<1 && Ask+atr<OrderOpenPrice() && proverka==1)

   {

    x=OrderSend(Symbol(),OP_BUY,OrderLots()*Ml,Ask,3,0,0,Komment,Magic,0,Blue);

    nday=DayOfYear();

   }

  }

 }

 

İlk defa bir döngüde pozisyonların açılışını yazmaya çalıştım çünkü. Diğer çiftlerin açılmasını dışlamıyorum.

Ama nedense döngüde hiçbir şey açmıyor! Açmak için gerçekten özel bir döngüye ihtiyacınız var mı?! Doğru, sadece test cihazında kontrol ettim!

Her zamanki gibi yazdım:

    optal = OrdersTotal ();
     for (op = optal- 1 ; op >= 0 ; op--) 
    { 
       if ( OrderSelect (op,SELECT_BY_POS,MODE_TRADES))
      { 
         if (OrderSymbol() != Symbol ()) continue ;
         if (OrderMagicNumber() != magic) continue ; 
// и т.д.

Emirleri, pozisyonları açmanın nesi yanlış? Yardımın için teşekkürler!

 
borilunad :

İlk defa bir döngüde pozisyonların açılışını yazmaya çalıştım çünkü. Diğer çiftlerin açılmasını dışlamıyorum.

Ama nedense döngüde hiçbir şey açmıyor! Açmak için gerçekten özel bir döngüye ihtiyacınız var mı?! Doğru, sadece test cihazında kontrol ettim!

Her zamanki gibi yazdım:

Emirleri, pozisyonları açmanın nesi yanlış? Yardımın için teşekkürler!



Henüz sipariş yok, döngü başlamaz. Genel olarak döngünün anlamı nedir?
 
borilunad :

İlk defa bir döngüde pozisyonların açılışını yazmaya çalıştım çünkü. Diğer çiftlerin açılmasını dışlamıyorum.

Ama nedense döngüde hiçbir şey açmıyor! Açmak için gerçekten özel bir döngüye ihtiyacınız var mı?!

Her zamanki gibi yazdım:

Emirleri, pozisyonları açmanın nesi yanlış? Yardımın için teşekkürler!

Döngü, ticaret akışının serbest bırakılmasından daha hızlı çalışır. Bu nedenle, başka bir döngü gecikmesi koymanız gerekir . (! IsTradeContextMeşgul ()) uyku (100);
 
valeryk :


Henüz sipariş yok, döngü başlamaz. Genel olarak döngünün anlamı nedir?


Teşekkür ederim! Ben de öyle düşünmüştüm! Yani, örneğin, ilk çiftte açmak istersem, döngü olmadan, ancak if( OrdersTotal == 0 ile) yeterlidir. Aynı veya başka bir çift için başka bir sipariş açtığınızda, bir döngüye ihtiyacınız var ve işe yarayacak! Şimdi deneyeceğim!

Açılışta çok şeyin değişmesi gerektiği görülebilir, ancak prensipte nasıl olması gerektiğini anladım! Teşekkür ederim!

 

Aslında, bir tür zararlı mantık. İlk başta dikkatli bakmadım... Emirleri açarken neden OrdersTotal() ???

Bir döngüde birkaç sipariş açmanız gerekiyorsa, döngü gerekli sipariş sayısına göre düzenlenmelidir. Ve bu miktarı sürekli olarak korumanız gerekiyorsa, diğer kurallar geçerlidir.

Örneğin, 7 sipariş açmanız gerekiyor

 for ( int i = 0 ; i < 7 ; i++)
{
while (!IsTradeContextBusy()) Sleep ( 100 ); // Ожидание освобождения торгового потока

int ticket = OrderSend (Symbol(), ..............); // Открытие ордера
if (ticket > 0 ) Print ( "Открылся ордер № " , i, " ticket - " , ticket); // Проверка пропусков при открытии.
}
Ama bu kısa versiyonu. Kesin olarak, siparişleri açarken hata işleme eklemek gerekli olacaktır.
 
AlexeyVik :

Aslında, bir tür zararlı mantık. İlk başta dikkatli bakmadım... Emirleri açarken neden OrdersTotal()???

Bir döngüde birkaç sipariş açmanız gerekiyorsa, döngü gerekli sipariş sayısına göre düzenlenmelidir. Ve bu miktarı sürekli olarak korumanız gerekiyorsa, diğer kurallar geçerlidir.

Örneğin, 7 sipariş açmanız gerekiyor

Ama bu kısa versiyonu. Kesin olarak, siparişleri açarken hata işleme eklemek gerekli olacaktır.

Teşekkür ederim! Ama baykuşların diğer çiftleri görmemesi için bir döngüye ihtiyacım var! Hatalarla sonra ilgileneceğim! Kayıtta 130 hatası göründüğünde bile çok mutlu oldum, bu yüzden işe yaradı! Hatalarım harici işlevlerde işleniyor! Tekrar teşekkürler!
 
borilunad :

Teşekkür ederim! Ama baykuşların diğer çiftleri görmemesi için bir döngüye ihtiyacım var! Hatalarla sonra ilgileneceğim! Kayıtta 130 hatası göründüğünde bile çok mutlu oldum, bu yüzden işe yaradı! Hatalarım harici işlevlerde işleniyor! Tekrar teşekkürler!
İşte mantık yanılgısı burada yatmaktadır. Baykuşlar diğer çiftleri görmeden edemezler. Diğer sembollerin ZATEN AÇIK siparişlerini işlemeyecek şekilde yapılabilir ve yapılmalıdır. Ve OrderSend (............) işlevinde , belirli bir Sembol () yazılır veya metin biçiminde, örneğin "EURUSD" ... girdiğiniz her şey açılır. Ya da açmayı deneyin...
 
AlexeyVik :

Aslında, bir tür zararlı mantık. İlk başta dikkatli bakmadım... Emirleri açarken neden OrdersTotal()???

Bir döngüde birkaç sipariş açmanız gerekiyorsa, döngü gerekli sipariş sayısına göre düzenlenmelidir. Ve bu miktarı sürekli olarak korumanız gerekiyorsa, diğer kurallar geçerlidir.

Örneğin, 7 sipariş açmanız gerekiyor

Ama bu kısa versiyonu. Kesin olarak, siparişleri açarken hata işleme eklemek gerekli olacaktır.

Onay başına sekiz siparişe kadar açılma olasılığını kontrol etmenin iyi bir yolu. Onlara söz verdik, ama şimdiye kadar kimse kontrol etmedi.
 
Vinin :

Onay başına sekiz siparişe kadar açılma olasılığını kontrol etmenin iyi bir yolu. Onlara söz verdik, ama şimdiye kadar kimse kontrol etmedi.

Hiçbir şey anlamadım...
Neden: