![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Ve yine de, standart fonksiyon emirlerin yürütülmesini, onların doldurulmasını destekliyor mu, çünkü daha önce açmak için CiTrade'i kullandım, emirlerin yerine getirilmesini istemediğim borsaya gelene kadar, çünkü. dolguyu belirlemek imkansızdı
SetTypeDoldurma
SetTypeDoldurma
Yürütme için sipariş türünü ayarlar
İhtiyacınız olanı yükleyin.
Evet ve önceki konuda, bu forumun guruları, bu bilginin her zaman geldiğinden emin oldum ... neredeyse anında ... ve bilet sunucudan olumlu bir yanıtla düzenlenmezse, sipariş verilmedi. yer almak
Ayrıca OnTradeTransaction olayını kullanmayı deneyin. Bir yerde, tüm ticaret işlemlerinin telefon dinlemesinin bir örneği var. Yanılmıyorsam, o zaman Rosh ortaya çıktı. Bak...
Genel olarak, alım satım işlemleri arasında duraklamalar eklemek iyi bir tondur ;-)
Şu anda ve burada gurular öğretecek))
Tecrübenle, burada bu tür soruları sormak uygun değil.
Ne tür bir saçmalık?
Ayrıca OnTradeTransaction olayını kullanmayı deneyin. Bir yerde, tüm ticaret işlemlerinin telefon dinlemesinin bir örneği var. Yanılmıyorsam, o zaman Rosh ortaya çıktı. Bak...
SetTypeDoldurma
SetTypeDoldurma
Yürütme için sipariş türünü ayarlar
İhtiyacınız olanı yükleyin.
Ne tür bir saçmalık?
Ayrıca OnTradeTransaction olayını kullanmayı deneyin. Bir yerde, tüm ticaret işlemlerinin telefon dinlemesinin bir örneği var. Yanılmıyorsam, o zaman Rosh ortaya çıktı. Bak...
Genel olarak, alım satım işlemleri arasında duraklamalar eklemek iyi bir tondur ;-)
Hazırda bekletme modunu zaten düşündüm, ancak bu en uygun çözüm değil ....
En iyi çıkış yolu, anlaşmanın gelmesini beklemek. İşlemler açısından bu "TRADE_TRANSACTION_DEAL_ADD".
Vladimir Karputov bunu defalarca yazdı . Konuları da arayın...
Burada seçmelerimi buldum.
//| TradeTransaction function |
//+------------------------------------------------------------------+
void OnTradeTransaction ( const MqlTradeTransaction &trans,
const MqlTradeRequest &request,
const MqlTradeResult &result)
{
//---
static int counter= 0 ; // счетчик вызовов OnTradeTransaction()
static uint lasttime= 0 ; // время последнего вызова OnTradeTransaction()
//---
uint time= GetTickCount ();
//--- если последняя транзакция была больше 1 секунды назад
if (time-lasttime> 1000 )
{
counter= 0 ; // значит, это новая торговая операция и можно сбросить счетчик
if ( IS_DEBUG_MODE )
Print ( " Новая торговая операция" );
}
lasttime=time;
counter++;
Print (counter, ". " , __FUNCTION__ );
//--- результат выполнения торгового запроса
ulong lastOrderID =trans.order;
ENUM_ORDER_TYPE lastOrderType =trans.order_type;
ENUM_ORDER_STATE lastOrderState=trans.order_state;
//--- имя символа, по которому произошла транзакция
string trans_symbol=trans.symbol;
//--- тип транзакции
ENUM_TRADE_TRANSACTION_TYPE trans_type=trans.type;
switch (trans.type)
{
case TRADE_TRANSACTION_POSITION : // изменение позиции
{
ulong pos_ID=trans.position;
PrintFormat ( "MqlTradeTransaction: Position #%d %s modified: SL=%.5f TP=%.5f" ,
pos_ID,trans_symbol,trans.price_sl,trans.price_tp);
}
break ;
case TRADE_TRANSACTION_REQUEST : // отправка торгового запроса
{
PrintFormat ( "MqlTradeTransaction: TRADE_TRANSACTION_REQUEST" );
break ;
}
case TRADE_TRANSACTION_DEAL_ADD : // добавление сделки
{
ulong lastDealID =trans.deal;
ENUM_DEAL_TYPE lastDealType =trans.deal_type;
double lastDealVolume=trans.volume;
//--- идентификатор сделки во внешней системе - тикет, присваиваемый Московской биржей
string Exchange_ticket= "" ;
if ( HistoryDealSelect (lastDealID))
Exchange_ticket= HistoryDealGetString (lastDealID, DEAL_EXTERNAL_ID );
if (Exchange_ticket!= "" )
Exchange_ticket= StringFormat ( "(MOEX deal=%s)" ,Exchange_ticket);
PrintFormat ( "MqlTradeTransaction: %s deal #%d %s %s %.2f lot %s" , EnumToString (trans_type),
lastDealID, EnumToString (lastDealType),trans_symbol,lastDealVolume,Exchange_ticket);
}
break ;
case TRADE_TRANSACTION_HISTORY_ADD : // добавление ордера в историю
{
//--- идентификатор ордера во внешней системе - тикет, присваиваемый Московской биржей
string Exchange_ticket= "" ;
if (lastOrderState== ORDER_STATE_FILLED )
{
if ( HistoryOrderSelect (lastOrderID))
Exchange_ticket= HistoryOrderGetString (lastOrderID, ORDER_EXTERNAL_ID );
if (Exchange_ticket!= "" )
Exchange_ticket= StringFormat ( "(MOEX ticket=%s)" ,Exchange_ticket);
}
PrintFormat ( "MqlTradeTransaction: %s order #%d %s %s %s %s" , EnumToString (trans_type),
lastOrderID, EnumToString (lastOrderType),trans_symbol, EnumToString (lastOrderState),Exchange_ticket);
}
break ;
default : // прочие транзакции
{
//--- идентификатор ордера во внешней системе - тикет, присваиваемый Московской биржей
string Exchange_ticket= "" ;
if (lastOrderState== ORDER_STATE_PLACED )
{
if ( OrderSelect (lastOrderID))
Exchange_ticket= OrderGetString ( ORDER_EXTERNAL_ID );
if (Exchange_ticket!= "" )
Exchange_ticket= StringFormat ( "MOEX ticket=%s" ,Exchange_ticket);
}
PrintFormat ( "MqlTradeTransaction: %s order #%d %s %s %s" , EnumToString (trans_type),
lastOrderID, EnumToString (lastOrderType), EnumToString (lastOrderState),Exchange_ticket);
}
break ;
}
//--- тикет ордера
ulong orderID_result=result.order;
string retcode_result= this .GetRetcodeID(result.retcode);
if (orderID_result!= 0 )
PrintFormat ( "MqlTradeResult: order #%d retcode=%s " ,orderID_result,retcode_result);
}
Genel olarak, alım satım işlemleri arasında duraklamalar eklemek iyi bir tondur ;-)
Gülüşün ne anlama geliyor anlamadım?
Bunu senden duymayı beklemiyordum. Ne duraklıyor, yoksa şaka mı yapıyorsun?
En iyi çıkış yolu, anlaşmanın gelmesini beklemek. İşlemler açısından bu "TRADE_TRANSACTION_DEAL_ADD".
Burada seçmelerimi buldum.
//| TradeTransaction function |
//+------------------------------------------------------------------+
void OnTradeTransaction ( const MqlTradeTransaction &trans,
const MqlTradeRequest &request,
const MqlTradeResult &result)
{
//---
static int counter= 0 ; // счетчик вызовов OnTradeTransaction()
static uint lasttime= 0 ; // время последнего вызова OnTradeTransaction()
//---
uint time= GetTickCount ();
//--- если последняя транзакция была больше 1 секунды назад
if (time-lasttime> 1000 )
{
counter= 0 ; // значит, это новая торговая операция и можно сбросить счетчик
if ( IS_DEBUG_MODE )
Print ( " Новая торговая операция" );
}
lasttime=time;
counter++;
Print (counter, ". " , __FUNCTION__ );
//--- результат выполнения торгового запроса
ulong lastOrderID =trans.order;
ENUM_ORDER_TYPE lastOrderType =trans.order_type;
ENUM_ORDER_STATE lastOrderState=trans.order_state;
//--- имя символа, по которому произошла транзакция
string trans_symbol=trans.symbol;
//--- тип транзакции
ENUM_TRADE_TRANSACTION_TYPE trans_type=trans.type;
switch (trans.type)
{
case TRADE_TRANSACTION_POSITION : // изменение позиции
{
ulong pos_ID=trans.position;
PrintFormat ( "MqlTradeTransaction: Position #%d %s modified: SL=%.5f TP=%.5f" ,
pos_ID,trans_symbol,trans.price_sl,trans.price_tp);
}
break ;
case TRADE_TRANSACTION_REQUEST : // отправка торгового запроса
{
PrintFormat ( "MqlTradeTransaction: TRADE_TRANSACTION_REQUEST" );
break ;
}
case TRADE_TRANSACTION_DEAL_ADD : // добавление сделки
{
ulong lastDealID =trans.deal;
ENUM_DEAL_TYPE lastDealType =trans.deal_type;
double lastDealVolume=trans.volume;
//--- идентификатор сделки во внешней системе - тикет, присваиваемый Московской биржей
string Exchange_ticket= "" ;
if ( HistoryDealSelect (lastDealID))
Exchange_ticket= HistoryDealGetString (lastDealID, DEAL_EXTERNAL_ID );
if (Exchange_ticket!= "" )
Exchange_ticket= StringFormat ( "(MOEX deal=%s)" ,Exchange_ticket);
PrintFormat ( "MqlTradeTransaction: %s deal #%d %s %s %.2f lot %s" , EnumToString (trans_type),
lastDealID, EnumToString (lastDealType),trans_symbol,lastDealVolume,Exchange_ticket);
}
break ;
case TRADE_TRANSACTION_HISTORY_ADD : // добавление ордера в историю
{
//--- идентификатор ордера во внешней системе - тикет, присваиваемый Московской биржей
string Exchange_ticket= "" ;
if (lastOrderState== ORDER_STATE_FILLED )
{
if ( HistoryOrderSelect (lastOrderID))
Exchange_ticket= HistoryOrderGetString (lastOrderID, ORDER_EXTERNAL_ID );
if (Exchange_ticket!= "" )
Exchange_ticket= StringFormat ( "(MOEX ticket=%s)" ,Exchange_ticket);
}
PrintFormat ( "MqlTradeTransaction: %s order #%d %s %s %s %s" , EnumToString (trans_type),
lastOrderID, EnumToString (lastOrderType),trans_symbol, EnumToString (lastOrderState),Exchange_ticket);
}
break ;
default : // прочие транзакции
{
//--- идентификатор ордера во внешней системе - тикет, присваиваемый Московской биржей
string Exchange_ticket= "" ;
if (lastOrderState== ORDER_STATE_PLACED )
{
if ( OrderSelect (lastOrderID))
Exchange_ticket= OrderGetString ( ORDER_EXTERNAL_ID );
if (Exchange_ticket!= "" )
Exchange_ticket= StringFormat ( "MOEX ticket=%s" ,Exchange_ticket);
}
PrintFormat ( "MqlTradeTransaction: %s order #%d %s %s %s" , EnumToString (trans_type),
lastOrderID, EnumToString (lastOrderType), EnumToString (lastOrderState),Exchange_ticket);
}
break ;
}
//--- тикет ордера
ulong orderID_result=result.order;
string retcode_result= this .GetRetcodeID(result.retcode);
if (orderID_result!= 0 )
PrintFormat ( "MqlTradeResult: order #%d retcode=%s " ,orderID_result,retcode_result);
}
En iyi çıkış yolu, anlaşmanın gelmesini beklemek. İşlemler açısından bu "TRADE_TRANSACTION_DEAL_ADD".
Burada seçmelerimi buldum.
//| TradeTransaction function |
//+------------------------------------------------------------------+
void OnTradeTransaction ( const MqlTradeTransaction &trans,
const MqlTradeRequest &request,
const MqlTradeResult &result)
{
//---
static int counter= 0 ; // счетчик вызовов OnTradeTransaction()
static uint lasttime= 0 ; // время последнего вызова OnTradeTransaction()
//---
uint time= GetTickCount ();
//--- если последняя транзакция была больше 1 секунды назад
if (time-lasttime> 1000 )
{
counter= 0 ; // значит, это новая торговая операция и можно сбросить счетчик
if ( IS_DEBUG_MODE )
Print ( " Новая торговая операция" );
}
lasttime=time;
counter++;
Print (counter, ". " , __FUNCTION__ );
//--- результат выполнения торгового запроса
ulong lastOrderID =trans.order;
ENUM_ORDER_TYPE lastOrderType =trans.order_type;
ENUM_ORDER_STATE lastOrderState=trans.order_state;
//--- имя символа, по которому произошла транзакция
string trans_symbol=trans.symbol;
//--- тип транзакции
ENUM_TRADE_TRANSACTION_TYPE trans_type=trans.type;
switch (trans.type)
{
case TRADE_TRANSACTION_POSITION : // изменение позиции
{
ulong pos_ID=trans.position;
PrintFormat ( "MqlTradeTransaction: Position #%d %s modified: SL=%.5f TP=%.5f" ,
pos_ID,trans_symbol,trans.price_sl,trans.price_tp);
}
break ;
case TRADE_TRANSACTION_REQUEST : // отправка торгового запроса
{
PrintFormat ( "MqlTradeTransaction: TRADE_TRANSACTION_REQUEST" );
break ;
}
case TRADE_TRANSACTION_DEAL_ADD : // добавление сделки
{
ulong lastDealID =trans.deal;
ENUM_DEAL_TYPE lastDealType =trans.deal_type;
double lastDealVolume=trans.volume;
//--- идентификатор сделки во внешней системе - тикет, присваиваемый Московской биржей
string Exchange_ticket= "" ;
if ( HistoryDealSelect (lastDealID))
Exchange_ticket= HistoryDealGetString (lastDealID, DEAL_EXTERNAL_ID );
if (Exchange_ticket!= "" )
Exchange_ticket= StringFormat ( "(MOEX deal=%s)" ,Exchange_ticket);
PrintFormat ( "MqlTradeTransaction: %s deal #%d %s %s %.2f lot %s" , EnumToString (trans_type),
lastDealID, EnumToString (lastDealType),trans_symbol,lastDealVolume,Exchange_ticket);
}
break ;
case TRADE_TRANSACTION_HISTORY_ADD : // добавление ордера в историю
{
//--- идентификатор ордера во внешней системе - тикет, присваиваемый Московской биржей
string Exchange_ticket= "" ;
if (lastOrderState== ORDER_STATE_FILLED )
{
if ( HistoryOrderSelect (lastOrderID))
Exchange_ticket= HistoryOrderGetString (lastOrderID, ORDER_EXTERNAL_ID );
if (Exchange_ticket!= "" )
Exchange_ticket= StringFormat ( "(MOEX ticket=%s)" ,Exchange_ticket);
}
PrintFormat ( "MqlTradeTransaction: %s order #%d %s %s %s %s" , EnumToString (trans_type),
lastOrderID, EnumToString (lastOrderType),trans_symbol, EnumToString (lastOrderState),Exchange_ticket);
}
break ;
default : // прочие транзакции
{
//--- идентификатор ордера во внешней системе - тикет, присваиваемый Московской биржей
string Exchange_ticket= "" ;
if (lastOrderState== ORDER_STATE_PLACED )
{
if ( OrderSelect (lastOrderID))
Exchange_ticket= OrderGetString ( ORDER_EXTERNAL_ID );
if (Exchange_ticket!= "" )
Exchange_ticket= StringFormat ( "MOEX ticket=%s" ,Exchange_ticket);
}
PrintFormat ( "MqlTradeTransaction: %s order #%d %s %s %s" , EnumToString (trans_type),
lastOrderID, EnumToString (lastOrderType), EnumToString (lastOrderState),Exchange_ticket);
}
break ;
}
//--- тикет ордера
ulong orderID_result=result.order;
string retcode_result= this .GetRetcodeID(result.retcode);
if (orderID_result!= 0 )
PrintFormat ( "MqlTradeResult: order #%d retcode=%s " ,orderID_result,retcode_result);
}
ve eğer dinlemezseniz ve uyumazsanız, siparişin olumlu bir sonucu olan, ancak bir pozisyonun yokluğunda bile, danışmanın ne beklediğimizi bilmesini sağlamanın başka bir yolu var mı?