Hatalar, hatalar, sorular - sayfa 2019

 
fxsaber :

Bu konuda defalarca yazıldı. Nedense çalışmıyorlar.

Okların her zaman işlemden hemen sonra görünmeyebileceğini yazdıklarını daha önce görmüştüm. Ben de bu uygulamayı açtım. Ancak bu tür boşlukların Geçmiş sekmesindeki listede olması için henüz herhangi bir mesaj görmedim.

PS Ve evet, hatayı yeniden oluşturmak için gerekli tüm verileri ve kanıtları sağladıktan sonra, bir nedenden ötürü, en başından beri tepki gösterseler de, bir hata olduğunu kabul etmeyi reddetseler de, bir hafta boyunca tamamen görmezden gelindi.

 
Anatoli Kazharski :

Okların her zaman işlemden hemen sonra görünmeyebileceğini yazdıklarını daha önce görmüştüm. Ben de bu uygulamayı açtım. Ancak bu tür boşlukların Geçmiş sekmesindeki listede olması için henüz herhangi bir mesaj görmedim.

Sekmelerin birkaç kez değiştirilmesi gerekir, ardından geçmiş doğru olur. Bu hata ayıklama sırasında çok can sıkıcıdır.

 
fxsaber :

Sekmelerin birkaç kez değiştirilmesi gerekir, ardından geçmiş doğru olur. Bu hata ayıklama sırasında çok can sıkıcıdır.

Evet, bazı durumlarda ticaret stratejileri geliştirirken ve hata ayıklarken büyük ölçüde engeller.

Sekmeleri değiştirmenin geçmiş listesinin içeriğini bir şekilde değiştirdiğini fark etmedim:


 
Anatoli Kazharski :

Sekmeleri değiştirmenin geçmiş listesinin içeriğini bir şekilde değiştirdiğini fark etmedim:

Sağ tıklayın ve Anlaşmaları/Siparişleri değiştirin.

 
Anatoli Kazharski :

Evet, bazı durumlarda ticaret stratejileri geliştirirken ve hata ayıklarken büyük ölçüde engeller.

Sekmeleri değiştirmenin geçmiş listesinin içeriğini bir şekilde değiştirdiğini fark etmedim:


Böyle yiyin. Kendimi bir hız kaydırıcısı ve bir duraklama ile kurtarıyorum.
 
fxsaber :

Sağ tıklayın ve Anlaşmaları/Siparişleri değiştirin.

Evet, bu tür eylemler ticaret geçmişi listesini geri yükler:


 
Bu konuyla ilgili olmayan yorumlar " MQL4 MT4 MetaTrader 4 Yeni Başlayanlardan Sorular " bölümüne taşındı.
 
Hesaptaki tüm gerçek semboller "EURUSD.hello" gibi görünür. Özel bir "EURUSD" oluşturduktan sonra, Sinyaller hizmetinin yanından kopyalama yaparken herhangi bir sorun olur mu?
 

Lütfen aşağıdaki değerleri ekleyin

ENUM_DEAL_REASON

tanımlayıcı

Tanım

DEAL_REASON_LIMIT

İşlem, bir limit emri tetiklenmesinin bir sonucu olarak gerçekleştirildi.

DEAL_REASON_MARKET

İşlem, bir piyasa emrinin tetiklenmesi sonucunda gerçekleştirildi.

DEAL_REASON_STOP

Anlaşma, bir durdurma emrinin tetiklenmesinin bir sonucu olarak gerçekleştirildi.


Görünüşe göre bu gereksiz. Ancak emrin kısmen yerine getirildiği ve bir anlaşmaya yol açan durumlar vardır. DEAL_ORDER bulunacak, ancak geçmiş tablosunda olmayacak çünkü düzen hala yaşıyor.

Onlar. alım satıma neden olan emir türünü öğrenmek için Emir Geçmişine başvurmak her zaman yardımcı olmayacaktır. "Ölü ve diri" arasında emir aramakla uğraşmamak için, ENUM_ORDER_REASON ve E NUM_POSITION_REASON ile uyumluluğu korumak için mevcut olanlardan sonra daha fazla yürütme bayrağı eklemenizi öneririm. Bu durumda, uyumluluk olması için aynı bayrakların E NUM_POSITION_REASON'a eklenmesi arzu edilir.

POSITION_REASON_LIMIT  == DEAL_REASON_LIMIT
POSITION_REASON_MARKET == DEAL_REASON_MARKET
POSITION_REASON_STOP   == DEAL_REASON_STOP
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок
  • www.mql5.com
Сделка является отражением факта совершения торговой операции на основании ордера, содержащего торговый приказ. Каждая сделка описывается свойствами, позволяющими получить информацию о ней. Для чтения значений свойств используются функции вида Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая...
 

Bir sonraki başlıkta https://www.mql5.com/ru/forum/216697/page3 OrderCalcMargin hakkında bir soru gündeme getirildi


Test: Farklı açılış fiyatlarının ikamesi ile marjı hesaplamak için 2 farklı seçeneği kontrol edelim.

 #define TOSTRING(A) #A+ " = " +(string)(A)
void OnStart ()
  {
   double margin_1= 999 ,price_1;

   Print (TOSTRING(price_1= SymbolInfoDouble ( Symbol (), SYMBOL_ASK )));
   Print ( "price_1= " ,price_1, " margin_1= " , NormalizeDouble (margin_1, 8 ), " " ,TOSTRING( OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1)));
   Print ( "price_1= " ,price_1, " margin_1= " , NormalizeDouble (margin_1, 8 ), " " ,TOSTRING(MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1)));
   Print (TOSTRING(price_1= SymbolInfoDouble ( Symbol (), SYMBOL_BID )));
   Print ( "price_1= " ,price_1, " margin_1= " , NormalizeDouble (margin_1, 8 ), " " ,TOSTRING( OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1)));
   Print ( "price_1= " ,price_1, " margin_1= " , NormalizeDouble (margin_1, 8 ), " " ,TOSTRING(MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1)));
   Print (TOSTRING(price_1= 10.0 ));
   Print ( "price_1= " ,price_1, " margin_1= " , NormalizeDouble (margin_1, 8 ), " " ,TOSTRING( OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1)));
   Print ( "price_1= " ,price_1, " margin_1= " , NormalizeDouble (margin_1, 8 ), " " ,TOSTRING(MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1)));
   Print (TOSTRING(price_1= 1.0 ));
   Print ( "price_1= " ,price_1, " margin_1= " , NormalizeDouble (margin_1, 8 ), " " ,TOSTRING( OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1)));
   Print ( "price_1= " ,price_1, " margin_1= " , NormalizeDouble (margin_1, 8 ), " " ,TOSTRING(MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1)));
  }

// Альтернатива OrderCalcMargin
bool MyOrderCalcMargin( const ENUM_ORDER_TYPE action, const string symbol, const double volume, const double price, double &margin)
  {
   double MarginInit,MarginMain;

   const bool Res= SymbolInfoMarginRate (symbol,action,MarginInit,MarginMain);

   margin=Res ? MarginInit*price*volume* SymbolInfoDouble (symbol, SYMBOL_TRADE_TICK_VALUE )/
          ( SymbolInfoDouble (symbol, SYMBOL_TRADE_TICK_SIZE )* AccountInfoInteger ( ACCOUNT_LEVERAGE )) : 0 ;

   return (Res);
  }

İşte LOG

LF       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= SymbolInfoDouble ( Symbol (), SYMBOL_ASK ) = 88.712
KP       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= 88.712 margin_1= 26.19 OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
CR       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= 88.712 margin_1= 26.19399834 MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
ED       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= SymbolInfoDouble ( Symbol (), SYMBOL_BID ) = 88.7
PR       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= 88.7 margin_1= 26.19 OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
KS       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= 88.7 margin_1= 26.1904551 MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
EP       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= 10.0 = 10.0
HK       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= 10.0 margin_1= 26.19 OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
HH       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= 10.0 margin_1= 2.95270069 MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
KN       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= 1.0 = 1.0
FS       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= 1.0 margin_1= 26.19 OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
PR       0        04 : 28 : 05.464     test (AUDJPY,H1)        price_1= 1.0 margin_1= 0.29527007 MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true

OrderCalcMargin işlevi, marjı hesaplarken açılış fiyatını dikkate almaz

Bu, açılış anı ve fiyatı için yeniden hesaplanması gereken teklif döviz kuru ile ilgili görünüyor.

Eğer kote edilen para birimi USD ise (hesap para birimi de USD'dir), hesaplanan marj açılış fiyatına göre değişir.

GBPUSD için oturum açın

KK       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= SymbolInfoDouble ( Symbol (), SYMBOL_ASK ) = 1.32354
CR       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= 1.32354 margin_1= 44.12 OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
DD       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= 1.32354 margin_1= 44.118 MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
GD       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= SymbolInfoDouble ( Symbol (), SYMBOL_BID ) = 1.32341
LS       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= 1.32341 margin_1= 44.11 OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
NQ       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= 1.32341 margin_1= 44.11366667 MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
DG       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= 10.0 = 10.0
LM       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= 10.0 margin_1= 333.33 OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
NO       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= 10.0 margin_1= 333.33333333 MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
HM       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= 1.0 = 1.0
ED       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= 1.0 margin_1= 33.33 OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true
OD       0        05 : 25 : 15.763     test (GBPUSD,H1)        price_1= 1.0 margin_1= 33.33333333 MyOrderCalcMargin( ORDER_TYPE_BUY , _Symbol , 0.1 ,price_1,margin_1) = true

Bu bir bug mı yoksa böyle mi olması gerekiyor?

OrderCalcMargin и проблема с ним связанная.
OrderCalcMargin и проблема с ним связанная.
  • 2017.10.04
  • www.mql5.com
Один советник работает на счёте MetaQuotes-Demo на семи валютных парах и на трёх парах реальном счёте робо. Итого 10 экземпляров советника запущено...