Hatalar, hatalar, sorular - sayfa 668

 

Piyasa Derinliği'ndeki renklere odaklanırsanız, kafa karışıklığı var gibi görünüyor.

//---

Satın al düğmesi mavidir. Bu nedenle sipariş verebileceğiniz fiyatların da mavi olması gerekir. Şimdi her şey tam tersi ve buna alışmak için çaba sarf etmeniz gerekiyor ve başarılı olmanız pek mümkün değil. Bu psikolojik bir nüanstır. )))

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Виды заявок в стакане цен
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Виды заявок в стакане цен
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Виды заявок в стакане цен - Документация по MQL5
 

Yardım'daki Pazar Derinliği ile ilgili bilgilere dayanarak, test şeması şöyle görünecektir:

 //+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   MarketBookAdd ( _Symbol );
//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   MarketBookRelease ( _Symbol );
  }
//+------------------------------------------------------------------+
//| OnBook Event                                                     |
//+------------------------------------------------------------------+
MqlBookInfo priceArray[];
//---
void OnBookEvent ( const string &symbol_name)
  {
   bool getBook= MarketBookGet ( _Symbol ,priceArray);
//---
   if (!getBook)
     {
       Print ( "Не удалось получить содержимое стакана по символу " , Symbol ());
     }
  }
//+------------------------------------------------------------------+
//| OnChart event handler                                            |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam)
  {
   double price_buy= 0.0 ,price_sell= 0.0 ;
//---
   TRADE_EXEMODE=( int ) SymbolInfoInteger ( _Symbol , SYMBOL_TRADE_EXEMODE ); // Узнаем тип исполнения
//---
   if (TRADE_EXEMODE== SYMBOL_TRADE_EXECUTION_MARKET ||
            TRADE_EXEMODE== SYMBOL_TRADE_EXECUTION_EXCHANGE )
     {
      mytrade.SetTypeFilling( ORDER_FILLING_IOC );
       //---
       if (TRADE_EXEMODE== SYMBOL_TRADE_EXECUTION_EXCHANGE )
        {
         int size= ArraySize (priceArray);
         //---
         for ( int i=size- 1 ; i>= 0 ; i--)
           {
             if (priceArray[i].type== 1 )
              {
               price_buy=priceArray[i].price; // Получим ближайшую цену для BUY
               price_sell=priceArray[i+ 1 ].price; // Получим ближайшую цену для SELL

               //---
               break ;
              }
           }
        }
       else
        {
         price_buy=mylast_tick.ask;
         price_sell=mylast_tick.bid;
        }
     }
//---
   //... Далее следуют функции для совершения торговых операций
  }

//---

Ancak alım satım işlemleri gerçekleştirildiğinde, uzman günlüğünde, talebin tam olarak Piyasa Derinliği'ne en yakın fiyatı içermesine rağmen açıkça görüldüğü bir mesaj görüntülenir:

price_request=mytrade.RequestPrice();

sonuç olarak fiyat yoktur (0,000):

price_result=mytrade.ResultPrice();

ve ticaret işlevi false değerini döndürür:

//---

Günlükte, bir pozisyon açma girişiminin sıfır fiyatta olduğunu görüyoruz:

, ancak pozisyon hala mevcut fiyattan açılıyor.

//---

Bu bilgiler hatanın hangi tarafta olduğunu belirlemeye yetmez ise Servis Masasına yazacağım.

 

Çaydanlığa söyle lütfen, bekleyen bir emri nasıl geri çekebilirim?

trReq.order=order_ticket;

trReq.type=TİCARET_ACTION_REMOVE;

OrderSend(trReq,trRez);

Derleyici bana şunu veriyor: TRADE_ACTION_REMOVE enum'u dönüştüremiyor

ve aynı hata hakkında 2 kez.

Ayrıca daha önce sıfırlamayı denedim:

trReq.symbol =Sembol(); // BOŞ

trReq.magic=BÜYÜ; //0

trReq.hacim=0.0;

trReq.type=0;

trReq.fiyat =0.0;

trReq.sl=0.0;

trReq.tp=0.0;

trReq.type_time =0;

trReq.sona erme=0;

yardımcı olmuyor 597 yap.

Tam bir örnek verin lütfen. Şimdiden teşekkürler.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
stroka :
...

Tam bir örnek verin lütfen. Şimdiden teşekkürler.

Tam bir örnek standart kütüphanededir. OrderDelete () işlevi. Belgeler . Ayrıca, burada tüm ticaret işlemleri için işlevleri temel alabilirsiniz.

 //+------------------------------------------------------------------+
//| Delete specified pending order.                                  |
//| INPUT:  ticket - ticket of order for delete.                     |
//| OUTPUT: true-if successful, false otherwise.                     |
//| REMARK: no.                                                      |
//+------------------------------------------------------------------+
bool CTrade::OrderDelete( ulong ticket)
  {
//--- variables
   string action,result;
//--- check stopped
   if ( IsStopped ( __FUNCTION__ )) return ( false );
//--- clean
   ClearStructures();
//--- setting request
   m_request.action    = TRADE_ACTION_REMOVE ;
   m_request.order     =ticket;
//--- order check
   if (! OrderCheck (m_request,m_check_result))
     {
       //--- copy return code
      m_result.retcode=m_check_result.retcode;
       if (m_log_level>LOG_LEVEL_NO)
         printf ( __FUNCTION__ + ": %s [%s]" ,FormatRequest(action,m_request),FormatRequestResult(result,m_request,m_result));
       return ( false );
     }
//--- order send
   if (! OrderSend (m_request,m_result))
     {
       if (m_log_level>LOG_LEVEL_NO)
         printf ( __FUNCTION__ + ": %s [%s]" ,FormatRequest(action,m_request),FormatRequestResult(result,m_request,m_result));
       return ( false );
     }
   if (m_log_level>LOG_LEVEL_ERRORS)
       printf ( __FUNCTION__ + ": %s [%s]" ,FormatRequest(action,m_request),FormatRequestResult(result,m_request,m_result));
//--- ok
   return ( true );
  }
 
Terminal, mql5 topluluğunda oturum açmıyor. Kullanıcı adımı ve şifremi terminal ayarlarına giriyorum, tamam'a basın ve hiçbir şey olmuyor. Ayarları tekrar girdiğinizde, giriş kaydedilir ve şifre boştur. Marketten hiçbir şey indirilmiyor. Foruma sorunsuz girebiliyorum.
 
Dima_S :

Ve harici bir parametre olarak belirtildiğinde dize hangi amaçla kesilir?

giriş dizesi - daha fazlaysa maksimum 105 karakter ayarlanabilir - sağ kesilir.

597 inşa

607 buid - aynı sorun.
 

söyle lütfen, aşağıdaki kod neden ilgili pencereyi bulamıyor (kontrol ettim, bu sınıfa sahip bir pencere var)

 #import "user32.dll"
   int FindWindowA( string &lpClassName, string &lpWindowName);
#import

string FormClass= "TMyMainForm" ;
string FormName= "" ;
int hnd = FindWindowA(FormClass,FormName);
if (hnd== 0 ) printf ( "not found" );
else printf ( "found" );
 

bazı hatalar var gibi görünüyor

 //+------------------------------------------------------------------+
//| Open position.                                                   |
//| INPUT:  symbol     -symbol for trade,                            |
//|         order_type -direct for open,                             |
//|         volume     -volume of position,                          |
//|         price      -price for open,                              |
//|         stop       -price of stop loss,                          |
//|         take       -price of take profit,                        |
//|         comment    -comment of position.                         |
//| OUTPUT: true-if successful, false otherwise.                     |
//| REMARK: no.                                                      |
//+------------------------------------------------------------------+
bool CTrade::PositionOpen( const string symbol, ENUM_ORDER_TYPE order_type, double volume,
                           double price, double sl, double tp, const string comment)

10008 dönüş koduyla (sipariş verildi), bu yöntem false döndürür.

Ancak sonunda emir yerine getirilir.

Bu nedenle demo hesapta gereğinden fazla sipariş açılmıştır.

RQ       0        Trades   14 : 00 : 18          '3119321' : accepted exchange buy 0.10 USDCHF at 0.00000
IO       0        Trades   14 : 00 : 18          '3119321' : exchange buy 0.10 USDCHF at 0.00000 placed for execution
MH       0        Trades   14 : 00 : 18          '3119321' : exchange buy 0.10 USDCHF at 0.00000
MQ       0        Trades   14 : 00 : 18          '3119321' : deal # 2888080 buy 0.10 USDCHF at 0.91144 done (based on order # 4880065 )
NL       0        Trades   14 : 00 : 18          '3119321' : accepted exchange buy 0.10 USDCHF at 0.00000
MK       0        Trades   14 : 00 : 18          '3119321' : exchange buy 0.10 USDCHF at 0.00000 placed for execution
IS       0        Trades   14 : 00 : 18          '3119321' : exchange buy 0.10 USDCHF at 0.00000
MN       0        Trades   14 : 00 : 19          '3119321' : accepted exchange buy 0.10 USDCHF at 0.00000
NE       0        Trades   14 : 00 : 19          '3119321' : exchange buy 0.10 USDCHF at 0.00000 placed for execution
JQ       0        Trades   14 : 00 : 19          '3119321' : exchange buy 0.10 USDCHF at 0.00000
PJ       0        Trades   14 : 00 : 19          '3119321' : deal # 2888081 buy 0.10 USDCHF at 0.91144 done (based on order # 4880066 )
KG       0        Trades   14 : 00 : 20          '3119321' : deal # 2888082 buy 0.10 USDCHF at 0.91145 done (based on order # 4880067 )
KF       0        Trades   14 : 00 : 20          '3119321' : accepted exchange buy 0.10 USDCHF at 0.00000
LM       0        Trades   14 : 00 : 20          '3119321' : exchange buy 0.10 USDCHF at 0.00000 placed for execution
HJ       0        Trades   14 : 00 : 20          '3119321' : exchange buy 0.10 USDCHF at 0.00000
DR       0        Trades   14 : 00 : 20          '3119321' : deal # 2888083 buy 0.10 USDCHF at 0.91146 done (based on order # 4880068 )
HR       0        Trades   14 : 00 : 21          '3119321' : accepted exchange buy 0.10 USDCHF at 0.00000
OJ       0        Trades   14 : 00 : 21          '3119321' : exchange buy 0.10 USDCHF at 0.00000 placed for execution
CE       0        Trades   14 : 00 : 21          '3119321' : exchange buy 0.10 USDCHF at 0.00000
MN       0        Trades   14 : 00 : 21          '3119321' : deal # 2888084 buy 0.10 USDCHF at 0.91146 done (based on order # 4880069 )
DI       0        Trades   14 : 00 : 21          '3119321' : accepted exchange buy 0.10 USDCHF at 0.00000
CF       0        Trades   14 : 00 : 21          '3119321' : exchange buy 0.10 USDCHF at 0.00000 placed for execution
OP       0        Trades   14 : 00 : 21          '3119321' : exchange buy 0.10 USDCHF at 0.00000
GI       0        Trades   14 : 00 : 22          '3119321' : deal # 2888085 buy 0.10 USDCHF at 0.91146 done (based on order # 4880070 )
QD       0        Trades   14 : 00 : 22          '3119321' : accepted exchange buy 0.10 USDCHF at 0.00000
JS       0        Trades   14 : 00 : 22          '3119321' : exchange buy 0.10 USDCHF at 0.00000 placed for execution
NK       0        Trades   14 : 00 : 22          '3119321' : exchange buy 0.10 USDCHF at 0.00000
MD       0        Trades   14 : 00 : 22          '3119321' : deal # 2888086 buy 0.10 USDCHF at 0.91146 done (based on order # 4880071 )
NS       0        Trades   14 : 00 : 23          '3119321' : accepted exchange buy 0.10 USDCHF at 0.00000
MH       0        Trades   14 : 00 : 23          '3119321' : exchange buy 0.10 USDCHF at 0.00000 placed for execution
IG       0        Trades   14 : 00 : 23          '3119321' : exchange buy 0.10 USDCHF at 0.00000
....

ve uzman günlüğü

(EURUSD,H1)     14 : 00 : 18         CTrade::PositionOpen:  [placed]
(EURUSD,H1)     14 : 00 : 18         CTrade::PositionOpen:  [placed]
(EURUSD,H1)     14 : 00 : 19         CTrade::PositionOpen:  [placed]
(EURUSD,H1)     14 : 00 : 20         CTrade::PositionOpen:  [placed]
(EURUSD,H1)     14 : 00 : 21         CTrade::PositionOpen:  [placed]
(EURUSD,H1)     14 : 00 : 21         CTrade::PositionOpen:  [placed]
(EURUSD,H1)     14 : 00 : 22         CTrade::PositionOpen:  [placed]
(EURUSD,H1)     14 : 00 : 23         CTrade::PositionOpen:  [placed]
(EURUSD,H1)     14 : 00 : 23         CTrade::PositionOpen:  [placed]
....

Sunucuda bir piyasa emrinin verildiği ancak yürütülmediği (kısmen de olsa) ne zaman olabileceğini söyleyin?
Документация по MQL5: Торговые функции / OrdersTotal
Документация по MQL5: Торговые функции / OrdersTotal
  • www.mql5.com
Торговые функции / OrdersTotal - Документация по MQL5
 
olyakish :

bazı hatalar var gibi görünüyor

10008 dönüş koduyla (sipariş verildi), bu yöntem false döndürür.

Ancak sonunda emir yerine getirilir.

Bu nedenle demo hesapta gereğinden fazlasipariş açılmıştır.

ve uzman günlüğü

Sunucuda bir piyasa emrinin verildiği ancak yürütülmediği (kısmen de olsa) ne zaman olabileceğini söyleyin?

Aynı sorun sayfanın en başında açıklanmaktadır. Burada: https://www.mql5.com/ru/forum/1111/page679#comment_164002 . Henüz bir cevap verilmedi.

//---

Demo hesabınız nerede?

 
tol64 :

Aynı sorun sayfanın en başında açıklanmaktadır. Burada: https://www.mql5.com/en/forum/1111/page679#comment_164002 . Henüz bir cevap verilmedi.

//---

Demo hesabınız nerede?

1. Bu konuyu geç gördüm.

2. A*****i'de

Bunu 4. forumda mizahi bir amaçla yayınladım, ama bence burada da olmalı:

Oturup uzmanın (MT5) uçuşlarını analiz ediyorum ve günlüklerde bulduğum şey bu

.....(EURUSD,H1)         16 : 43 : 16         CTrade::PositionClose:  [ not enough money ]
... DC'de ... nerede ???