Gennady Mazur : 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ı
Gennady Mazur : 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
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 ;-)
Tecrübenle, burada bu tür soruları sormak uygun değil.
Sergey, evet, yeterince deneyim var ... ama öğrenmek için asla geç değildir ... ya daha önce bir şeyi yanlış anladıysan ya da belki yeni bir şey tanıttılarsa ... Sormak zor değil, belki başka biri işe yarar ... ya da belki zaten bir tür prablochkoy ile karşı karşıya kaldı ve şimdi her şeye 5 dakika içinde karar verilecek.
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...
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 ....
Dennis Kirichenko : En iyi çıkış yolu, anlaşmanın gelmesini beklemek. İşlemler açısından bu "TRADE_TRANSACTION_DEAL_ADD".
Burada seçmelerimi buldum.
//+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ voidOnTradeTransaction ( constMqlTradeTransaction &trans, constMqlTradeRequest &request, constMqlTradeResult &result) { //--- staticint counter= 0 ; // счетчик вызовов OnTradeTransaction() staticuint 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) { caseTRADE_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 ; caseTRADE_TRANSACTION_REQUEST : // отправка торгового запроса { PrintFormat ( "MqlTradeTransaction: TRADE_TRANSACTION_REQUEST" ); break ; } caseTRADE_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 ; caseTRADE_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); }
Evet, çok faydalı bilgiler ... teşekkürler ... 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ı?
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
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ı?