Hatalar, hatalar, sorular - sayfa 1453

 
Vladislav Andruschenko :

tablo aşağıdaki değerleri gösterir:

Doldur veya Öldür

SYMBOL_FILLING_FOK

1

Bu politika, bir anlaşmanın yalnızca belirtilen hacimle yürütülebileceği anlamına gelir. Gerekli miktarda finansal araç piyasada mevcut değilse emir gerçekleşmez. Gerekli hacim, şu anda piyasada bulunan çeşitli teklifler kullanılarak doldurulabilir.

Hemen veya İptal Et

SYMBOL_FILLING_IOC

2

Bu durumda, bir tüccar, piyasada mevcut olan maksimum hacimde, emirde belirtilen hacimde bir anlaşma yapmayı kabul eder. Siparişin tam olarak doldurulamaması durumunda, siparişin mevcut hacmi doldurulacak ve kalan miktar iptal edilecektir. IOC emirlerini kullanma olasılığı ticaret sunucusunda belirlenir.

dönüş

tanımlayıcı yok

Bu politika sadece piyasa emirleri (Al ve Sat), limit ve stop limit emirleri ve sadece Piyasa veya Borsa icrası olan semboller için kullanılır. Kısmi dolum durumunda, bir piyasanın veya limit emrinin kalan miktarı iptal edilmez, işleme alınır.

Ama veriler muhtemelen burada karıştı!

Yardımı okumadın

Her araç için bir mod değil, bir bayrak kombinasyonu yoluyla birkaç mod ayarlanabilir. Bayrakların kombinasyonu, SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOC gibi bir mantıksal VEYA (|) işlemiyle ifade edilir . Bir araç için belirli bir modun etkinleştirilip etkinleştirilmediğini kontrol etmek için mantıksal AND (&) sonucunun mod bayrağıyla karşılaştırılması gerekir.

 

Semboller için, SYMBOL_FILLING_MODE özelliği, bir bayrak kombinasyonu anlamına gelir - yani, bu sembolün ticaretinde hangi doldurma modlarına izin verildiğini açıklar.

Belgelerde yazılı olarak kontrolü yapmayı denediniz mi?

В режимах исполнения "По запросу" и "Немедленный" для рыночных ордеров всегда используется политика заполнения Все/Ничего, а для лимитных ордеров - режим "Вернуть". В данном случае, при от отсылке ордеров функциями OrderSend или OrderSendAsync тип заполнения для них можно не указывать.

"Piyasa" ve "Değişim" yürütme modlarında, her türlü emir için "İade" doldurma politikasına her zaman izin verilir. Diğer türlerin izni, SYMBOL_FILLING_FOK ve SYMBOL_FILLING_IOC özellikleri kullanılarak kontrol edilir.

Misal:

//+------------------------------------------- --------------------+
//| belirtilen dolgu moduna izin verilip verilmediğini kontrol eder |
//+------------------------------------------- --------------------+
bool IsFillingTypeAllowed( dize sembolü, int fill_type)
{
//--- doldurma modunu tanımlayan özelliğin değerini alın
    int doldurma=( int ) SymbolInfoInteger (sembol, SYMBOL_FILLING_MODE );
//--- fill_type modu etkinse true döndür
    dönüş ((filling&fill_type)==fill_type);
}

 


 
Rashid Umarov :

Semboller için, SYMBOL_FILLING_MODE özelliği, bir bayrak kombinasyonu anlamına gelir - yani, bu sembolün ticaretinde hangi doldurma modlarına izin verildiğini açıklar.

Belgelerde yazılı olarak kontrolü yapmayı denediniz mi?


bu çözüm yardımcı oldu

         switch (( int ) SymbolInfoInteger ( Symbol (), SYMBOL_FILLING_MODE ))
   {
   case SYMBOL_FILLING_FOK :
      request.type_filling= ORDER_FILLING_FOK ;
       break ;
   case SYMBOL_FILLING_IOC :
      request.type_filling= ORDER_FILLING_IOC ;
       break ;
   default :
      request.type_filling= ORDER_FILLING_RETURN ;
   }
 
Vladislav Andruschenko :

bu çözüm yardımcı oldu

Yardımı daha dikkatli okursanız, her iki modun da mevcut olduğu durumun ele alınmadığını göreceksiniz - SymbolInfoInteger değeri (SYMBOL_FILLING_FOK | SYMBOL_FILLING_IOC ) olacaktır. ).
 

Ve aşağıdaki kodla "RoboForex-MetaTrader 5" sunucusunda kontrol edebilirsiniz:

 //+------------------------------------------------------------------+
//|                                                 Info_FILLING.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
#property description "Варианты исполнения ордера по объему"
#include<Trade\Trade.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
// Все/Ничего     SYMBOL_FILLING_FOK   1
// Все/Частично   SYMBOL_FILLING_IOC   2
// Вернуть        Идентификатор отсутствует
   Print ( "Все/Ничего: " ,IsFillingTypeAllowed( Symbol (), SYMBOL_FILLING_FOK ));
   Print ( "Все/Частично: " ,IsFillingTypeAllowed( Symbol (), SYMBOL_FILLING_IOC ));
   Print ( "Вернуть: " ,IsFillingTypeAllowed( Symbol (), NULL ));

   CTrade oTrade;
   switch (( int ) SymbolInfoInteger ( Symbol (), SYMBOL_FILLING_MODE ))
     {
       case SYMBOL_FILLING_FOK :
         Print ( "ORDER_FILLING_FOK" );
         break ;
       case SYMBOL_FILLING_IOC :
         Print ( "ORDER_FILLING_IOC" );
         break ;
       default :
         Print ( "ORDER_FILLING_RETURN" );
     }
  }
//+------------------------------------------------------------------+ 
//| проверяет разрешенность указанного режима заполнения             | 
//+------------------------------------------------------------------+ 
bool IsFillingTypeAllowed( string symbol, int fill_type)
  {
//--- получим значение свойства, описывающего режим заполнения 
   int filling=( int ) SymbolInfoInteger (symbol, SYMBOL_FILLING_MODE );
//--- вернем true, если режим fill_type разрешен 
   return ((filling&fill_type)==fill_type);
  }
//+------------------------------------------------------------------+

Ve çıktı sonucu:

 2015.12 . 22 18 : 13 : 09.946 Info_FILLING (AUDCAD.m,D1)      Все/Ничего: true
2015.12 . 22 18 : 13 : 09.946 Info_FILLING (AUDCAD.m,D1)      Все/Частично: true
2015.12 . 22 18 : 13 : 09.946 Info_FILLING (AUDCAD.m,D1)      Вернуть: true
2015.12 . 22 18 : 13 : 09.946 Info_FILLING (AUDCAD.m,D1)       ORDER_FILLING_RETURN


Anahtarlı seçeneğin bize yalan söylediği görülebilir. Ancak belgelerden bir örnek tam bir resim verir.

 

Ne sıkıntısı var

MarketInfo(Symbol(),MODE_MARGININIT) ve SymbolInfoDouble(Symbol(), SYMBOL_MARGIN_INITIAL )

Neden sıfır veriyorlar?????

 
Vladimir Pastushak :

Ne sıkıntısı var

MarketInfo(Symbol(),MODE_MARGININIT) ve SymbolInfoDouble(Symbol(), SYMBOL_MARGIN_INITIAL )

Neden sıfır veriyorlar?????

Yarım yıldır hizmet masasında teminat hesaplama sorunu ile ilgili bir başvuru asılı, sertifikadaki bilgiler sitedeki bilgilerle uyuşmuyor; sertifikadaki ve sitedeki bilgiler gerçekle uyuşmuyor , geliştiriciler, lütfen doğru açıklamayı yapın

Teminatın hesaplanması

Hatalar ,   MetaTrader 5 MQL5 ,   açık ,   Başlangıç: 2015.07.13 16:23 ,   #1259415

İşte MQL5 Yardım'dan bir örnek:

SYMBOL_CALC_MODE_FOREX

Forex modu - Forex için kar ve marj hesaplaması

Marj: Lot*Sözleşme_Boyutu/Kaldıraç

Bu, doğrudan bir fiyat teklifi hesaplama formülüdür, tersi için farklı olacaktır, ancak çapraz için üçüncü olacaktır. Web sitesinde de aynı hata var.

peki ne tür bir pazar her yere götürmez ki formüller çok şüpheli..

Ve bugün MarketInfo(Symbol(),MODE_MARGININIT) ve SymbolInfoDouble(Symbol(), SYMBOL_MARGIN_INITIAL ) öğelerinin sıfır döndürdüğü ortaya çıktı.

Ama bu kaynakta aynı garip yazılar, https://metaquotes5.wordpress.com/2012/08/ anladığım kadarıyla bu bir MetaQuotes blogu.

What are Expert Magic Numbers?
  • 2012.08.11
  • skebanga
  • metaquotes5.wordpress.com
Expert magic numbers are ids given to a particular expert advisor. Care should be taken to ensure the ids are unique. This is because the magic number is used by the MetaTrader back end to know which expert advisor to send information to. For example, when a trade notification is...
 
Etrafta düşmanlar var. Maaş günü kadınlarımız dışında kimsenin bize ihtiyacı yok.
 
Алексей Тарабанов :
Etrafta düşmanlar var. Maaş günü kadınlarımız dışında kimsenin bize ihtiyacı yok.

Alexey hoşgeldin

MT5'teki iPulsar göstergesini yeniden yazabilirseniz, lütfen yeniden yazın - evet, kod tabanında

teşekkürler


 

Merhaba meslektaşlarım!

Üzgünüm, bu dalı görene kadar ana dalları çöpe attım.

Sorunu nasıl çözeceğimi söyleyin: BAY_STOP veya SELL_STOP siparişi verirken, FORTS'daki MT5 Expert Advisor sürekli olarak 10022 hatası veriyor: "Talepte geçersiz sipariş son kullanma tarihi."

Son kullanma tarihi benim için önemli değil, ancak siparişin basitçe ayarlanacağı parametreleri bulamıyorum. Forex'te bu sorun yok. Broker AÇILIŞI. Hata, test cihazında oluşur.