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

 

Söylemek. Soruyu askıya alın.

iOpen , Ask veya Bid ile nasıl hesaplanır?

 double DayOpenone = NormalizeDouble ( iOpen ( Symbol (), PERIOD_D1 , 0 ), Digits );

double DayOpentwo = NormalizeDouble(iOpen(Symbol(), PERIOD_D1, 1), Digits); 

Mesele, bugünün açılış fiyatını dünün açık fiyatı ile karşılaştırmaktır, görünüşe göre bir yayılma çarpışması ortaya çıkıyor ve ardından kodda daha fazla sorun başlıyor. bazı günlerde iOpen fiyatlarının yanlış olması nedeniyle sadece alım veya satım işlemleri yapılır.

 
Порт-моне тв iOpen , Ask veya Bid ile nasıl hesaplanır?

Mesele, bugünün açılış fiyatını dünün açık fiyatı ile karşılaştırmaktır, görünüşe göre bir yayılma çarpışması ortaya çıkıyor ve ardından kodda daha fazla sorun başlıyor. bazı günlerde iOpen fiyatlarının yanlış olması nedeniyle sadece alım veya satım işlemleri yapılır.

Grafik, Teklif fiyatına dayanmaktadır

 

Arkadaşlar lütfen söyleyin.

Çoklu para birimi danışmanı yazıyorum, açılış emirleri dışında her şey planlandığı gibi çalışıyor. Lütfen bana neyin yanlış olduğunu söyle.

       if ((USDTP<= 0 )&&(JPYTP>= 3 )&&(z_USDJPY!= 2 ))
        {
         Alert ( "Продавай USDJPY. USD=" , USDTP, ", JPY=" , JPYTP);
         z_USDJPY= 2 ; //
         text_massage= "Продавай USDJPY" ;
         SendNotification (text_massage);
         RefreshRates();
         Ask1=MarketInfo( "USDJPY" ,MODE_ASK);
         Bid1=MarketInfo( "USDJPY" ,MODE_BID);
         Point1=MarketInfo( "USDJPY" ,MODE_POINT);
         OrderSend ( "USDJPY" , OP_BUY, 0.1 , Bid1, 3 , NormalizeDouble ((Ask1+StopLoss*Point1), 2 ), NormalizeDouble ((Ask1-TakeProfit*Point1), 2 ), NULL , 0 , 0 , 0 );
        }

Hata vermiyor sadece sipariş açmıyor

 
Sergey Dymov para birimi danışmanı yazıyorum, açılış emirleri dışında her şey planlandığı gibi çalışıyor. Lütfen bana neyin yanlış olduğunu söyle.

Hata vermiyor sadece sipariş açmıyor

SiparişGönder

Geri dönüş değeri

İşlem sunucusu tarafından siparişe atanan biletin numarasını veya arıza durumunda -1'i döndürür. Bir hata hakkında bilgi almak için GetLastError() işlevini çağırmalısınız.

Derleyici bile size Ordersend'in kontrol edilmesi gerektiğini yazıyor.

Satın alma Ask tarafından yapılır. Ancak, kayma yayılmadan daha az değilse Teklif ile de çalışabilir, bu da bu hatayı aramayı zorlaştırabilir.

 

para birimi danışmanı yazıyorum, açılış emirleri dışında her şey planlandığı gibi çalışıyor. Lütfen bana neyin yanlış olduğunu söyle.

       if ((USDTP<= 0 )&&(JPYTP>= 3 )&&(z_USDJPY!= 2 ))
        {
         Alert ( " Продавай USDJPY. USD=" , USDTP, ", JPY=" , JPYTP);
         z_USDJPY= 2 ; //
         text_massage= " Продавай USDJPY" ;
         SendNotification (text_massage);
         RefreshRates();
         Ask1=MarketInfo( "USDJPY" ,MODE_ASK);
         Bid1=MarketInfo( "USDJPY" ,MODE_BID);
         Point1=MarketInfo( "USDJPY" ,MODE_POINT);
         OrderSend ( "USDJPY" , OP_BUY , 0.1 , Bid1, 3 , NormalizeDouble ((Ask1+StopLoss*Point1), 2 ), NormalizeDouble ((Ask1-TakeProfit*Point1), 2 ), NULL , 0 , 0 , 0 );
        }

Hata vermiyor sadece sipariş açmıyor

Hatanın nerede olduğuna dikkat edin?

       if ((USDTP<= 0 )&&(JPYTP>= 3 )&&(z_USDJPY!= 2 ))
        {
         Alert ( "Продавай USDJPY. USD=" , USDTP, ", JPY=" , JPYTP);
         z_USDJPY= 2 ; //
         text_massage= "Продавай USDJPY" ;
         SendNotification (text_massage);
         RefreshRates();
         Ask1=MarketInfo( "USDJPY" ,MODE_ASK);
         Bid1=MarketInfo( "USDJPY" ,MODE_BID);
         Point1=MarketInfo( "USDJPY" ,MODE_POINT);
         int nDigits = ( int )MarketInfo( "USDJPY" , MODE_DIGITS);
         OrderSend ( "USDJPY" , OP_SELL , 0.1 , NormalizeDouble(Bid1, nDigits) , 3 , NormalizeDouble ((Ask1-StopLoss*Point1), nDigits ), NormalizeDouble ((Ask1+TakeProfit*Point1), nDigits ), NULL , magic , 0 , 0 );
        }

https://docs.mql4.com/ru/trading/ordersend

Примечание

Bir piyasa emri açarken (OP_SELL veya OP_BUY), açılış fiyatı olarak yalnızca en son Alış (sat) veya Satış (al) fiyatları kullanılabilir. İşlem, mevcut olandan farklı bir finansal araç üzerinde gerçekleştirilirse, bu araç için en son fiyatları almak için işlevi kullanın.   PazarBilgisi()   MODE_BID veya MODE_ASK parametresi ile.

Hesaplanmış veya normalleştirilmemiş bir fiyat kullanamazsınız . İstenen açılış fiyatı fiyat feed'inde değilse veya istenen fiyat ondalık basamak sayısına göre normalleştirilmediyse , 129 hatası (ERR_INVALID_PRICE) oluşturulur. İstenen açılış fiyatı çok eskiyse, slippage parametresinin değerinden bağımsız olarak 138 hatası (ERR_REQUOTE) oluşturulur. İstenen fiyat güncelliğini yitirmiş ancak hala fiyat akışında mevcutsa, emir cari fiyattan ve sadece cari fiyatın fiyat+-sapma aralığına düşmesi durumunda açılır.

...

Robot için benzersiz bir sihir ayarlamak da arzu edilir.

OrderSend - Торговые функции - Справочник MQL4
OrderSend - Торговые функции - Справочник MQL4
  • docs.mql4.com
OrderSend - Торговые функции - Справочник MQL4
 
Mihail Matkovskij # :

açılış fiyatı fiyat akışında veya istenen fiyatta değildi   normalleştirilmemiş   binaen   ondalık noktadan sonraki basamak sayısıyla , ardından

Bildiğim kadarıyla, Sor ve Bid zaten normalleştirildi. Benzer bir soru zaten gündeme getirildi ve hiçbir çelişki yoktu.

Sihir ve zararı durdurma ve kârı rakamlara getirme konusunda, belki de uygundur, ancak yazarın fikri bilinmemektedir.

 
Andrey Sokolov # :

Bildiğim kadarıyla, Sor ve Bid zaten normalleştirildi. Benzer bir soru zaten gündeme getirildi ve hiçbir çelişki yoktu.

Sihir ve zararı durdurma ve kârı rakamlara getirme konusunda, belki de uygundur, ancak yazarın fikri bilinmemektedir.

Bildiğim kadarıyla, belgelerde bundan bahsedilmiyor. Bu yüzden güvenli oynamak daha iyidir. Kesinlikle daha kötüye gitmeyecek.

SL ve TP ile ilgili olarak hesaplanırlar. Bu nedenle, rakamların değerine göre normalleştirilmeleri gerekir .

 

Merhaba arkadaşlar.

 
Söyle bana, geçmişin karı mavi daire içine alınmış, bu zaten eksi komisyon ve takas mı?
 

Tünaydın.

OpenOrderTime() yalnızca ilkini döndürdüğü için ikinci ve sonraki siparişlerin açılış zamanı nasıl alınır ve ikinci ve sonraki siparişlerin açılış fiyatı nasıl alınır, çünkü OpenOrderPrice()'e benzer şekilde, ilkinin fiyatını da döndürür