Herkese ve öncelikle fxsaber'a benzer bir sorum var. İlk bakışta soru ilkel geliyor ama bir cevap bulamıyorum. Burada https://www.mql5.com/ru/forum/6343/page939 "Aramaya çalış, fxsaber bir kez bu sorunla uğraştı. Ne olduğunu bilmiyorum, ilgilenmedim" söylendi. bu yüzden sana sormaya karar verdim.
Soru. Bir pozisyon açıyorum ve MqlTradeResult içeriğini şu şekilde yazdırmak istiyorum:
retcode, sipariş ve hacim çıktı, anlaşma ve fiyat her zaman sıfırdır. Lütfen bana neyi yanlış yaptığımı ve sonuç yapısının içeriğine nasıl erişileceğini (başlangıç için, en azından Yazdırma yoluyla çıktı) söyler misiniz?
Belki bu yüzden?
//+------------------------------------------------------------------+MqlTradeRequest request={ 0 };
MqlTradeResult result={ 0 };
//---
request.action = TRADE_ACTION_DEAL ; // type of trade operation
request.symbol = Pair1; // symbol
request.volume = lots; // volume of lot
request.type = oper; // order type
request.price = priceOpen; // price for opening
request.deviation= Slippage; // allowed deviation from the price
request.magic = magic;
//---if ( OrderSend (request,result))
{
Print ( "retcode = " + IntegerToString (result.retcode) + "; " );
Print ( "deal = " + IntegerToString (result.deal) + "; " );
Print ( "order = " + IntegerToString (result.order) + "; " );
Print ( "volume = " + DoubleToString (result.volume) + "; " );
Print ( "price = " + DoubleToString (result.price) + "; " );
}
else
{
// Здесь действия при ошибке открытия
}
//+------------------------------------------------------------------+
Bir pozisyon açıyorum ve MqlTradeResult içeriğini şu şekilde yazdırmak istiyorum:
retcode, order ve volume çıktısı alınırken, anlaşma ve fiyat her zaman sıfırdır . Lütfen bana neyi yanlış yaptığımı ve sonuç yapısının içeriğine (yeni başlayanlar için, en azından Yazdırma yoluyla çıktı) nasıl erişeceğimi söyler misiniz?
Peki, o zaman tamamen anlaşılmaz - yanlış bir şey yaptığımı düşündüm, ama eğer sıfırlar varsa, sonucun anlamı nedir? Açık bir sipariş görüyorum, sonuç.retcode 10009 ve sonuç.fiyat = 0 alıyorum? Sonuç içermiyorsa sonucun ne anlama geldiğini açıklayabilir misiniz?
Bu, sonuç yalnızca bir sipariş olduğunda (bilet ve fiyat yok), ancak bir anlaşma olmadığında MT5'in bir özelliğidir. birkaç yolunuz var
Her şeyin nasıl çalıştığını anlayın.
Neredeyse tüm tuzakların atlandığı, hazır üst düzey (alt düzey gizli) geliştirmeleri kullanın.
Teşekkür ederim.
MQL4'te sonuç yapısı yoktu ve bir bilet aldıktan sonra ilgili siparişi seçtik ve gerekli verileri istedik. MQL5, birçok gerekli veriyi içeren bir sonuç yapısına sahiptir ve kullanmamak mantıksız olacaktır.
1. Forumda soru sormadan önce "Her şeyin nasıl çalıştığını anlamaya" çalıştım. ve gördüklerim - sonuç yapısında:
structMqlTradeResult
{
uint retcode; // Operation return codeulong deal; // Deal ticket, if it is performedulong order; // Order ticket, if it is placeddouble volume; // Deal volume, confirmed by brokerdouble price; // Deal price, confirmed by brokerdouble bid; // Current Bid pricedouble ask; // Current Ask pricestring comment; // Broker comment to operation (by default it is filled by description of trade server return code)uint request_id; // Request ID set by the terminal during the dispatchuint retcode_external; // Return code of an external trading system
};
çifte fiyat var; // Komisyoncu tarafından onaylanan anlaşma fiyatı.
Geliştiriciden kod örneğinde
//--- send the requestif (! OrderSend (request,result))
PrintFormat ( "OrderSend error %d" , GetLastError ()); // if unable to send the request, output the error code//--- information about the operationPrintFormat ( "retcode=%u deal=%I64u order=%I64u" ,result.retcode,result.deal,result.order);
sonuç.deal çıktıdır, yani. bunun mantıklı olduğu varsayılır ve sonuç yapısında her zaman sıfır ile temsil edilmez. Sonuç.fiyatın yanı sıra sonuç.deal'in de MqlTradeResul'den alınabileceğini gösteren başka örnekler verebilirsiniz, yapmaya çalıştığım buydu.
Hiçbir yerde "Bu, sonucun yalnızca bir sipariş (bilet ve fiyatsız) olduğunda, ancak bir anlaşma olmadığında, MT5'in bir özelliğidir" bilgisini görmedim. Lütfen bu sonuca hangi bilgilere dayanarak ulaştığınızı söyleyin.
2. Bir pozisyonun parametrelerini, açıldıktan hemen sonra (kod 10009'un görünümü), önce bir bilet seçmeden almanıza izin veren "hazır yüksek seviyeli (alt seviye gizli) gelişmeler" biliyorsanız, , lütfen bir örnek verin veya ona bir bağlantı verin.
MQL4'te sonuç yapısı yoktu ve bir bilet aldıktan sonra ilgili siparişi seçtik ve gerekli verileri istedik. MQL5, birçok gerekli veriyi içeren bir sonuç yapısına sahiptir ve kullanmamak mantıksız olacaktır.
1. Forumda soru sormadan önce "Her şeyin nasıl çalıştığını anlamaya" çalıştım. ve gördüklerim - sonuç yapısında:
çifte fiyat var; // Komisyoncu tarafından onaylanan anlaşma fiyatı.
Geliştiriciden alınan kod örneğinde
sonuç.deal çıktıdır, yani. bunun mantıklı olduğu varsayılır ve sonuç yapısında her zaman sıfır ile temsil edilmez. Sonuç.fiyatın yanı sıra sonuç.deal'in de MqlTradeResul'den alınabileceğini gösteren başka örnekler verebilirsiniz, yapmaya çalıştığım buydu.
Hiçbir yerde "Bu, sonucun yalnızca bir sipariş (bilet ve fiyatsız) olduğunda, ancak bir anlaşma olmadığında, MT5'in bir özelliğidir" bilgisini görmedim. Lütfen bu sonuca hangi bilgilere dayanarak ulaştığınızı söyleyin.
2. Eğer biletle önceden seçim yapmadan, açıldıktan hemen sonra pozisyon parametrelerini (kod 10009 görünümü) almanızı sağlayan "hazır üst seviye (alt seviye gizli) geliştirmeler" biliyorsanız, lütfen veriniz. bir örnek veya ona bir bağlantı verin.
Bir ticaret talebi sonucunda ya bir ret ya da bir piyasa emri vardır. Bu bir ticaret değil, bir ticaret tarafından oluşturulan bir pozisyon da değil.
Bir pozisyon açmak için sunucuya bir ticaret talebi gönderilir (emir = emir)
Siparişin kabul edilmesi durumunda siparişin kabul edilip kuyruğa alınması sonucu iade edilir.
Emir yerine getirildiyse, bir anlaşma görünür - emrin yürütülmesinin sonucu.
İşlemin sonucu ya yeni bir pozisyon ya da mevcut bir pozisyonun hacminde bir artış / azalış veya bir pozisyonun kapanması veya bir darbe olacaktır. Veya yeni bir pozisyon (bir riskten korunma hesabı için)
Bir ticaret talebi sonucunda ya bir ret ya da bir piyasa emri vardır. Bu bir ticaret değil, bir ticaret tarafından oluşturulan bir pozisyon da değil.
Bir pozisyon açmak için sunucuya bir ticaret talebi gönderilir (emir = emir)
Siparişin kabul edilmesi durumunda siparişin kabul edilip kuyruğa alınması sonucu iade edilir.
Emir yerine getirildiyse, bir anlaşma görünür - emrin yürütülmesinin sonucu.
İşlemin sonucu ya yeni bir pozisyon ya da mevcut bir pozisyonun hacminde bir artış / azalış veya bir pozisyonun kapanması veya bir darbe olacaktır. Veya yeni bir pozisyon (bir riskten korunma hesabı için)
Teşekkür ederim - lütfen şunu söyleyin: - Ne düşünüyorsunuz, sıraladığınız işlemlerden hangi adımdan sonra İşlem Talebi Sonuç Yapısı (MqlTradeResult) çıkıyor?
- MQL5 açıklamasına göre: "Ticaret talebi sonucunun yapısı (MqlTradeResult) İşlem sistemine bir emir vermek için bir işlem talebine yanıt olarak, işlem sunucusu, önceden tanımlanmış özel bir yapı MqlTradeResult." ve "10009 TRADE_RETCODE_DONE Sipariş tamamlandı" biçiminde bir işlem talebinin işlenmesinin sonucu hakkında bilgi içeren verileri döndürür.
O. ticaret sunucusu dönüş kodu 10009, OrderSend isteğinin başarıyla tamamlandığı anlamına gelir, yani 10009 kodunu aldıktan sonra MqlTradeResult'dan veri istersem, bu sonuç.price = 0 nasıl açıklanır?
Algotrader18 : Teşekkür ederim - lütfen şunu söyleyin: - hangi adımdan sonra, listeledikleriniz arasından İşlem Talebi Sonuç Yapısı (MqlTradeResult) çıkıyor?
- MQL5 açıklamasına göre: "Ticaret talebi sonucunun yapısı (MqlTradeResult) İşlem sistemine bir emir vermek için bir işlem talebine yanıt olarak, işlem sunucusu, önceden tanımlanmış özel bir yapı MqlTradeResult." ve "10009 TRADE_RETCODE_DONE Sipariş tamamlandı" biçiminde bir işlem talebinin işlenmesinin sonucu hakkında bilgi içeren verileri döndürür.
O. ticaret sunucusu dönüş kodu 10009, OrderSend isteğinin başarıyla tamamlandığı anlamına gelir, yani 10009 kodunu aldıktan sonra MqlTradeResult'dan veri istersem, bu sonuç.price = 0 nasıl açıklanır?
10009 TRADE_RETCODE_DONE - bunu kendiniz açıkladınız - sipariş tamamlandı. Bu basitçe, siparişin yürütme için kuyrukta sunucuya başarıyla yerleştirildiği gerçeğidir.
Ayrıca, bu emir yerine getirilirse (sonuçta sunucu tarafından reddedilebilir), o zaman bir anlaşma görünür - anlaşmanın sonucu olarak, açılış fiyatına sahip bir pozisyon görünecektir.
TradeTransaction olayı gerçekleştiğinde Uzman Danışmanlarda çağrılır. İşlev, bir ticaret talebinin yürütülmesinin sonuçlarını işlemek için tasarlanmıştır.
geçersizOnTradeTransaction() const MqlTradeTransaction&trans,// ticari işlem yapısı const MqlTradeRequest&istek,// istek yapısı const MqlTradeResult&sonuç// yanıt yapısı );
При обрабокте транзакций типа TRADE_TRANSACTION_REQUEST для получения дополнительной информации необходимо анализировать второй и третий параметры функции OnTradeTransaction() – Отправка торгового запроса на покупку приводит к цепи торговых транзакций, которые совершаются на торговом счете: 1) запрос принимается на обработку, 2) далее для...
Hiçbir yerde "Bu, sonucun yalnızca bir sipariş (bilet ve fiyatsız) olduğunda, ancak bir anlaşma olmadığında, MT5'in bir özelliğidir" bilgisini görmedim. Lütfen bu sonuca hangi bilgilere dayanarak ulaştığınızı söyleyin.
Kendi deneyimi.
2. Bir pozisyonun parametrelerini, açıldıktan hemen sonra (kod 10009'un görünümü), önce bir bilet seçmeden almanıza izin veren "hazır yüksek seviyeli (alt seviye gizli) gelişmeler" biliyorsanız, , lütfen bir örnek verin veya ona bir bağlantı verin.
Tünaydın!
Herkese ve öncelikle fxsaber'a benzer bir sorum var.
İlk bakışta soru ilkel geliyor ama bir cevap bulamıyorum.
Burada https://www.mql5.com/ru/forum/6343/page939 "Aramaya çalış, fxsaber bir kez bu sorunla uğraştı. Ne olduğunu bilmiyorum, ilgilenmedim" söylendi. bu yüzden sana sormaya karar verdim.
Soru. Bir pozisyon açıyorum ve MqlTradeResult içeriğini şu şekilde yazdırmak istiyorum:
retcode, sipariş ve hacim çıktı, anlaşma ve fiyat her zaman sıfırdır.
Lütfen bana neyi yanlış yaptığımı ve sonuç yapısının içeriğine nasıl erişileceğini (başlangıç için, en azından Yazdırma yoluyla çıktı) söyler misiniz?
Belki bu yüzden?
Bir pozisyon açıyorum ve MqlTradeResult içeriğini şu şekilde yazdırmak istiyorum:
retcode, order ve volume çıktısı alınırken, anlaşma ve fiyat her zaman sıfırdır .
Lütfen bana neyi yanlış yaptığımı ve sonuç yapısının içeriğine (yeni başlayanlar için, en azından Yazdırma yoluyla çıktı) nasıl erişeceğimi söyler misiniz?
Sıfırlar ve sonuç olarak yazılır.
Belki bu yüzden?
Sıfırlar ve sonuç olarak yazılır.
Açık bir sipariş görüyorum, sonuç.retcode 10009 ve sonuç.fiyat = 0 alıyorum?
Sonuç içermiyorsa sonucun ne anlama geldiğini açıklayabilir misiniz?
Sonuç içermiyorsa sonucun ne anlama geldiğini açıklayabilir misiniz?
Bu, sonuç yalnızca bir sipariş olduğunda (bilet ve fiyat yok), ancak bir anlaşma olmadığında MT5'in bir özelliğidir. birkaç yolunuz var
Bu, sonuç yalnızca bir sipariş olduğunda (bilet ve fiyat yok), ancak bir anlaşma olmadığında MT5'in bir özelliğidir. birkaç yolunuz var
MQL4'te sonuç yapısı yoktu ve bir bilet aldıktan sonra ilgili siparişi seçtik ve gerekli verileri istedik. MQL5, birçok gerekli veriyi içeren bir sonuç yapısına sahiptir ve kullanmamak mantıksız olacaktır.
1. Forumda soru sormadan önce "Her şeyin nasıl çalıştığını anlamaya" çalıştım. ve gördüklerim - sonuç yapısında:
sonuç.deal çıktıdır, yani. bunun mantıklı olduğu varsayılır ve sonuç yapısında her zaman sıfır ile temsil edilmez. Sonuç.fiyatın yanı sıra sonuç.deal'in de MqlTradeResul'den alınabileceğini gösteren başka örnekler verebilirsiniz, yapmaya çalıştığım buydu.çifte fiyat var; // Komisyoncu tarafından onaylanan anlaşma fiyatı.
Geliştiriciden kod örneğinde
Hiçbir yerde "Bu, sonucun yalnızca bir sipariş (bilet ve fiyatsız) olduğunda, ancak bir anlaşma olmadığında, MT5'in bir özelliğidir" bilgisini görmedim. Lütfen bu sonuca hangi bilgilere dayanarak ulaştığınızı söyleyin.
2. Bir pozisyonun parametrelerini, açıldıktan hemen sonra (kod 10009'un görünümü), önce bir bilet seçmeden almanıza izin veren "hazır yüksek seviyeli (alt seviye gizli) gelişmeler" biliyorsanız, , lütfen bir örnek verin veya ona bir bağlantı verin.
Teşekkür ederim.
MQL4'te sonuç yapısı yoktu ve bir bilet aldıktan sonra ilgili siparişi seçtik ve gerekli verileri istedik. MQL5, birçok gerekli veriyi içeren bir sonuç yapısına sahiptir ve kullanmamak mantıksız olacaktır.
1. Forumda soru sormadan önce "Her şeyin nasıl çalıştığını anlamaya" çalıştım. ve gördüklerim - sonuç yapısında:
sonuç.deal çıktıdır, yani. bunun mantıklı olduğu varsayılır ve sonuç yapısında her zaman sıfır ile temsil edilmez. Sonuç.fiyatın yanı sıra sonuç.deal'in de MqlTradeResul'den alınabileceğini gösteren başka örnekler verebilirsiniz, yapmaya çalıştığım buydu.çifte fiyat var; // Komisyoncu tarafından onaylanan anlaşma fiyatı.
Geliştiriciden alınan kod örneğinde
Hiçbir yerde "Bu, sonucun yalnızca bir sipariş (bilet ve fiyatsız) olduğunda, ancak bir anlaşma olmadığında, MT5'in bir özelliğidir" bilgisini görmedim. Lütfen bu sonuca hangi bilgilere dayanarak ulaştığınızı söyleyin.
2. Eğer biletle önceden seçim yapmadan, açıldıktan hemen sonra pozisyon parametrelerini (kod 10009 görünümü) almanızı sağlayan "hazır üst seviye (alt seviye gizli) geliştirmeler" biliyorsanız, lütfen veriniz. bir örnek veya ona bir bağlantı verin.
Bir ticaret talebi sonucunda ya bir ret ya da bir piyasa emri vardır. Bu bir ticaret değil, bir ticaret tarafından oluşturulan bir pozisyon da değil.
Bir ticaret talebi sonucunda ya bir ret ya da bir piyasa emri vardır. Bu bir ticaret değil, bir ticaret tarafından oluşturulan bir pozisyon da değil.
- Ne düşünüyorsunuz, sıraladığınız işlemlerden hangi adımdan sonra İşlem Talebi Sonuç Yapısı (MqlTradeResult) çıkıyor?
- MQL5 açıklamasına göre:
"Ticaret talebi sonucunun yapısı (MqlTradeResult)
İşlem sistemine bir emir vermek için bir işlem talebine yanıt olarak, işlem sunucusu, önceden tanımlanmış özel bir yapı MqlTradeResult." ve "10009 TRADE_RETCODE_DONE Sipariş tamamlandı" biçiminde bir işlem talebinin işlenmesinin sonucu hakkında bilgi içeren verileri döndürür.
O. ticaret sunucusu dönüş kodu 10009, OrderSend isteğinin başarıyla tamamlandığı anlamına gelir, yani 10009 kodunu aldıktan sonra MqlTradeResult'dan veri istersem, bu sonuç.price = 0 nasıl açıklanır?
Teşekkür ederim - lütfen şunu söyleyin:
- hangi adımdan sonra, listeledikleriniz arasından İşlem Talebi Sonuç Yapısı (MqlTradeResult) çıkıyor?
- MQL5 açıklamasına göre:
"Ticaret talebi sonucunun yapısı (MqlTradeResult)
İşlem sistemine bir emir vermek için bir işlem talebine yanıt olarak, işlem sunucusu, önceden tanımlanmış özel bir yapı MqlTradeResult." ve "10009 TRADE_RETCODE_DONE Sipariş tamamlandı" biçiminde bir işlem talebinin işlenmesinin sonucu hakkında bilgi içeren verileri döndürür.
O. ticaret sunucusu dönüş kodu 10009, OrderSend isteğinin başarıyla tamamlandığı anlamına gelir, yani 10009 kodunu aldıktan sonra MqlTradeResult'dan veri istersem, bu sonuç.price = 0 nasıl açıklanır?
10009 TRADE_RETCODE_DONE - bunu kendiniz açıkladınız - sipariş tamamlandı. Bu basitçe, siparişin yürütme için kuyrukta sunucuya başarıyla yerleştirildiği gerçeğidir.
Ayrıca, bu emir yerine getirilirse (sonuçta sunucu tarafından reddedilebilir), o zaman bir anlaşma görünür - anlaşmanın sonucu olarak, açılış fiyatına sahip bir pozisyon görünecektir.
Hakkında okumak
OnTicaretİşlem
TradeTransaction olayı gerçekleştiğinde Uzman Danışmanlarda çağrılır. İşlev, bir ticaret talebinin yürütülmesinin sonuçlarını işlemek için tasarlanmıştır.
geçersiz OnTradeTransaction ()
const MqlTradeTransaction& trans , // ticari işlem yapısı
const MqlTradeRequest& istek , // istek yapısı
const MqlTradeResult& sonuç // yanıt yapısı
);
Hiçbir yerde "Bu, sonucun yalnızca bir sipariş (bilet ve fiyatsız) olduğunda, ancak bir anlaşma olmadığında, MT5'in bir özelliğidir" bilgisini görmedim. Lütfen bu sonuca hangi bilgilere dayanarak ulaştığınızı söyleyin.
Kendi deneyimi.
2. Bir pozisyonun parametrelerini, açıldıktan hemen sonra (kod 10009'un görünümü), önce bir bilet seçmeden almanıza izin veren "hazır yüksek seviyeli (alt seviye gizli) gelişmeler" biliyorsanız, , lütfen bir örnek verin veya ona bir bağlantı verin.
Başka bir seçenek daha var, ancak "gelişmiş".