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

 
Lerchik :

Yani, Ask'ta bir piyasa emri açmanın bir BuyLimit emri açmaya eşit olacağını söylemek istiyorsunuz.

Burada bir şeyler yanlış. Diyelim ki şimdi Teklif fiyatı 1.4500. Yani, piyasadan bir alış emri açtıktan sonra, Alış fiyatından yükselecek ve Bid'den talep edelim, diyelim ki 10 puan.

Ardından sipariş 1.4510'a yükselecek.

Şimdi BuyLimit Sipariş 1.4500. Ve bekleyen fiyattan 10 puan daha düşük olan fiyat, Ask'ta bir emir açacak. Teklif değil, Sor.

Biraz büyümez. Bunlar farklı şeylerdir ve karşılaştırılamazlar.

Belki de ben hatalıyım?

Tüm alış emirleri Ask ile açılır ve Bid ile kapatılır ve satış emirleri için tam tersi.

Okumak için çok tembelseniz, bir demo hesabı açın ve pratik yapın.

 
Сергей Таболин :

Belki yeni başlayanlar için belgeleri okursunuz?

İşte belgelerde neler var:

Bekleyen sipariş  

Bekleyen emir, bir aracı kuruma gelecekte belirli koşullar altında bir finansal enstrümanı alması veya satması için verilen emirdir. Aşağıdaki bekleyen emir türleri vardır:

  • Satın alma limiti   - siparişte belirtilene eşit veya daha düşük "Sor" fiyatından satın almak için bir ticaret emri. Bu durumda mevcut fiyat seviyesi, siparişte belirlenen değerden daha yüksektir. Genellikle bu tür siparişler, belirli bir seviyeye düşen enstrümanın fiyatının artmaya başlayacağı beklentisiyle verilir;

Ama burada ne yazdığını ve nasıl çalıştığını anlamıyorum.

Yani fiyat alış limitinin altına düşecek ve talep emri açacaktır. Ancak aynı zamanda sipariş aynı fiyattan mı yoksa daha yüksek fiyattan mı açılacak?

Sonuçta, bunun hiçbir yerde örneği yok. Sadece kurallar var. Ve burada kimse açıklamak istemiyor.

İşte başarmaya çalıştığım şey.

 
Lerchik :

İşte belgelerde neler var:

Bekleyen sipariş  

Bekleyen emir, bir aracı kuruma gelecekte belirli koşullar altında bir finansal enstrümanı alması veya satması için verilen emirdir. Aşağıdaki bekleyen emir türleri vardır:

  • Satın alma limiti   - siparişte belirtilene eşit veya daha düşük "Sor" fiyatından satın almak için bir ticaret emri. Bu durumda mevcut fiyat seviyesi, siparişte belirlenen değerden daha yüksektir. Genellikle bu tür siparişler, belirli bir seviyeye düşen enstrümanın fiyatının artmaya başlayacağı beklentisiyle verilir;

Ama burada ne yazdığını ve nasıl çalıştığını anlamıyorum.

Yani fiyat alış limitinin altına düşecek ve talep emri açacaktır. Ancak aynı zamanda sipariş aynı fiyattan mı yoksa daha yüksek fiyattan mı açılacak?

Sonuçta, bununla ilgili hiçbir yerde örnek yok. Sadece kurallar var. Ve burada kimse açıklamak istemiyor.

İşte başarmaya çalıştığım şey.

BuyLimit YALNIZCA Satış fiyatının altında ayarlanabilir. SellLimit YALNIZCA Teklif fiyatının üzerinde ayarlanabilir.

BuyStop, YALNIZCA Satış fiyatının üzerinde ayarlanabilir. SellStop YALNIZCA Teklif fiyatının altında ayarlanabilir.

Karşılık gelen fiyat, karşılık gelen siparişe ulaştığında, etkinleştirilecek ve böylece ilgili pozisyonu oluşturacaktır.

 
Lerchik :

İşte belgelerde neler var:

Bekleyen sipariş  

Bekleyen emir, bir aracı kuruma gelecekte belirli koşullar altında bir finansal enstrümanı alması veya satması için verilen emirdir. Aşağıdaki bekleyen emir türleri vardır:

  • Satın alma limiti   - siparişte belirtilene eşit veya daha düşük "Sor" fiyatından satın almak için bir ticaret emri. Bu durumda mevcut fiyat seviyesi, siparişte belirlenen değerden daha yüksektir. Genellikle bu tür siparişler, belirli bir seviyeye düşen enstrümanın fiyatının artmaya başlayacağı beklentisiyle verilir;

Ama burada ne yazdığını ve nasıl çalıştığını anlamıyorum.

Yani fiyat alış limitinin altına düşecek ve talep emri açacaktır. Ancak aynı zamanda sipariş aynı fiyattan mı yoksa daha yüksek fiyattan mı açılacak?

Sonuçta, bunun hiçbir yerde örneği yok. Sadece kurallar var. Ve burada kimse açıklamak istemiyor.

İşte başarmaya çalıştığım şey.

Bir demo hesabı açın ve pratik yapın.

Alış Limiti , mevcut Satış fiyatının altına ayarlanır ve Satış fiyatı düştüğünde açılır

Buy Stop , geçerli Satış fiyatının üzerinde ayarlanır ve Ask yükseldiğinde açılır

Mevcut Satış fiyatından satın alma açılır

 
MakarFX :

Bir demo hesabı açın ve pratik yapın.

Alış Limiti , mevcut Satış fiyatının altına ayarlanır ve Satış fiyatı düştüğünde açılır

Buy Stop , geçerli Satış fiyatının üzerinde ayarlanır ve Ask yükseldiğinde açılır

Mevcut Satış fiyatından satın alma açılır

En azından bir şey.

Daha ileri gidelim...

Peki, teklif fiyatı işten çıkarma fiyatının altına düştü ve talep emri açtı. Ancak sipariş fiyatı, siparişte belirlenenle aynı mı kalacak yoksa farklı mı olacak?

 
Lerchik :

En azından bir şey.

Daha ileri gidelim...

Peki, teklif fiyatı işten çıkarma fiyatının altına düştü ve talep emri açtı. Ancak sipariş fiyatı, siparişte belirlenenle aynı mı kalacak yoksa farklı mı olacak?

1 Satış fiyatı, bekletme fiyatına düşmelidir

2 Fiyat kalır

 
MakarFX :

1 Satış fiyatı, bekletme fiyatına düşmelidir

2 Fiyat kalır

Açıklamalar için çok teşekkürler.

Ve sonra zaten kafamı kırdım, neden ihtiyacım olduğu gibi yapamıyorum.

 

Herkese iyi günler.

Bir önceki soruma verdiğim cevaplardan anladığım kadarıyla - sadece sipariş açarken oluşabilecek hata işlemeyi yapmam gerekiyor - bu bir ilk. İkinci olarak, bir hata durumunda danışmanın her tıklamada sunucuyu kırmadığından emin olmam gerekiyor.

İlk soru - söyle bana lütfen hata işleme nasıl yapılır?

İkinci soru, kendinizi sunucunun oyulmasından nasıl koruyacağınızdır?

İşlemler böyle açılıyor

   /*УСЛОВИЕ 1*/
   if (flag_screen1==en_vbIkl_screen1 &&flag_screen2==en_vbIkl_screen2)
   { // НАЧАЛО УСЛОВИЕ 1
   if (ao_buy!= EMPTY_VALUE && count_orders_market_buy == 0 )
   {
     if ( OrderSend ( Symbol (),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_market_buy)) Print ( "Buy Open" ); // ОТКРЫВАЕМ БАЙ ОРДЕР
   }
   } // КОНЕЦ УСЛОВИЕ1

// И ОТЛОЖКИ ВОТ ТАК

   /*УСЛОВИЕ 1*/
   if (flag_screen1==en_vbIkl_screen1 &&flag_screen2==en_vbIkl_screen2)
   { // НАЧАЛО УСЛОВИЕ 1
   
   if (ao_buy!= EMPTY_VALUE && count_orders_stop_buy == 0 && max_Price>Bid)
   { //НАЧАЛО ПРОВЕРКИ УСЛОВИЯ 1 НА ОТКРЫТИЕ
   
   Print ( "БАЙ СТОП AO УСЛОВИЕ 1" );
         if ( OrderSend ( Symbol (),OP_BUYSTOP,lot,max_Price,slippages,max_Price-sl,max_Price+tp ,comment_ao_otloj_buy,Magik_number, TimeCurrent ()+order_life_time)) Print ( "BUY_STOP OPEN" ); // ОТКРЫВАЕМ ОТЛОЖЕННЫЙ БАЙ ОРДЕР
   
   }   //КОНЕЦ ПРОВЕРКИ УСЛОВИЯ 1 НА ОТКРЫТИЕ
   } // КОНЕЦ УСЛОВИЕ1



Değişken hesaplı piyasa alımı, aşağıdaki fonksiyon kullanılarak hesaplanır.

         void data_orders( string comment= "alt" , int magik_number= 123 )
              {
         int I = 0 ;
   count_orders_all = 0 ;   //КОЛИЧЕСТВО ВСЕХ УСТАНОВЛЕННЫХ ОРДЕРОВ
   count_orders_market_all = 0 ; //КОЛИЧСТВО ВСЕХ РЫНОЧНЫХ ОРДЕРОВ
   count_orders_market_buy = 0 ;
   
   count_orders_stop_buy = 0 ;     //КОЛИЧЕСТВО СТОП БАЕВ
   count_orders_limit_buy = 0 ;   // КОЛИЧЕСТВО ЛИМИТ БАЕВ
   
   count_orders_stop_sell = 0 ;     //КОЛИЧЕСТВО СТОП СЕЛОВ
   count_orders_limit_sell = 0 ;   //КОЛИЧЕСТВО ЛИМИТ СЕЛОВ
   
   
  lot_orders_buy = 0 ;     //ОБЪЁМ ЛОТА ПО БАЙ ОРДЕРАМ
         lot_orders_sell = 0 ;       //ОБЪЁМ ЛОТА ПО СЕЛЛ ОРДЕРАМ
         balance_all = 0 ;           // БАЛАНС ПО ВСЕМ ОРДЕРАМ
         balance_buy = 0 ;         // БАЛАНС ПО ОРДЕРАМ БАЙ
         balance_sell = 0 ;         // БАЛАНС ПО ОРДЕРАМ СЕЛЛ
         
         
         
           for ( int i = 0 ; i <= OrdersTotal ();i ++) // перебор всех ордеров в цикле
          {
  
   if ( OrderSelect (I , SELECT_BY_POS, MODE_TRADES)) // выбираем ордер по переменной цикла
   {
     if (OrderMagicNumber() != magik_number || OrderSymbol() != Symbol ()) // если ордер не нашь то
    {
     continue ; // переходим на следующую итерацию
    
    }
     if (comment== OrderComment() || comment== "alt" ) // если коментарий нашь то 
    {
    count_orders_all+= 1 ;
     if (OrderType()== OP_BUY)
    {
    count_orders_market_all+= 1 ;
    count_orders_market_buy+= 1 ;
    }
     if (OrderType()== OP_SELL)
    {
    count_orders_market_all+= 1 ;
    count_orders_market_sell+= 1 ;
    }
     if (OrderType()== OP_BUYSTOP)
    {
    count_orders_stop_buy+= 1 ;
    }
     if (OrderType()== OP_BUYLIMIT)
    {
    count_orders_limit_buy+= 1 ;
    
    }
     if (OrderType()== OP_SELLSTOP)
    {
    count_orders_stop_sell+= 1 ;
    
    }
     if (OrderType()== OP_SELLLIMIT)
    {
    count_orders_limit_sell+= 1 ;
    
    }
    
    
    
    }
         
         
              }
              }
              }

lütfen yazın - hatalar nasıl doğru bir şekilde ele alınır ve bir hata oluştuğunda sunucunun her tikte puanlanmasından nasıl kaçınılır?

 
DanilaMactep :

Herkese iyi günler.

lütfen yazın - hatalar nasıl doğru bir şekilde ele alınır ve bir hata oluştuğunda sunucunun her tikte puanlanmasından nasıl kaçınılır?
 if ( GetLastError ()== 141 ){ Alert ( GetLastError ()); ExpertRemove ();}
 
MakarFX :

Ve emir gönderimi ile emir açma girişimi olan her satırdan sonra bu şeyin yazılması gerekiyor, değil mi?

Ancak bir sorum var - uzman çıkarıcı danışmanımı tablodan kaldırırsa, onu otomatik olarak grafiğe tekrar eklemesini ve çalışmaya devam etmesini nasıl sağlayabilirim? Bu davanın tüm özünü daha ayrıntılı olarak açıklayabilir misiniz - hata 141 - çok fazla istek. Peki çok istek gelirse Expert Advisor'ı tablodan çıkarıyoruz ve sonra sabah ben uyanana kadar bekleyecek bir şey var, her şeyi yeniden yapıp tekrar Expert Advisor'ı grafiğe koymak için bilgisayara geliyoruz O_o?