Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
halka arz edeceğim. Doğru, henüz herhangi bir çeki bozmadım, ama bence işe yaramalı
Pekala, OnTik'te bir yerde: DelitClosePositionFromArrayPosition();
İyi günler ve tekrar yalvarıyorum. İkinci gün bu kod parçasının neden çalışmadığını anlayamıyorum
"Anlaşma girildi ...." yazısı normaldir, o zaman bir bölünme olmalıdır, bazı fırsatlar " Açık pozisyon ...." yazdırılır , ancak geri kalanların tümü (bunlar TakeProfit'teki pozisyonu kapatan anlaşmalardır) yazdırılmaz .
Ne oldu çözemedim. Kayıp işlemler metinde aşağıda renkli olarak vurgulanacaktır.
Yani sadece biraz SOS !!!
Alexey, bunların hepsi yalnızca OnTradeTransaction olayının işlenmesi için geçerlidir.
Bir olay meydana geldi, pozisyonu kapatmak için anlaşma yapıldı. Şu anda herhangi bir pozisyon yok. Bunu , siparişler ve fırsatlar listesini (kodda değil) seçip okuyarak onaylayabilirsiniz.
Ve pozisyonun kural olarak sadece iki emri ve iki anlaşması olduğu hadge hesabından bahsettiğimizi unutmayın.İyi günler, eğer sizin için zor değilse, bu yazıda kesinlikle her şeyi anlattınız. Yukarıda, yukarıdaki iki mesajım, hala ihtiyacım olan sonucu elde etmeye çalışıyorum - pozisyonun kapanmasını düzeltmek için. Ve yine de çalışmıyor.
Söyleyin lütfen, hatam veya kusurum nerede?????
void OnTradeTransaction ( const MqlTradeTransaction & trans, const MqlTradeRequest & request, const MqlTradeResult & result) { //--- if (trans.type == TRADE_TRANSACTION_DEAL_ADD ) { Print ( "Зашла сделка ########## " ,trans.position, " ###########" ); if ( HistoryDealGetInteger (trans.deal, DEAL_ENTRY ) == DEAL_ENTRY_IN ) // Открылась позиция { Print ( "Открыта позиция +++ " ,trans.position, " +++ записана в структуру ArrayPosition ++++++++++++++" ); } if ( HistoryDealGetInteger (trans.deal, DEAL_ENTRY ) != DEAL_ENTRY_IN ) { Print ( "Закрыта позиция --- " ,trans.position, " --- записана в структуру ArrayDealOut ------------" ); } } } 2020.04 . 12 12 : 10 : 27.368 Core 1 2018.01 . 03 04 : 58 : 00 CTrade:: OrderSend : modify position # 1252 EURUSD (sl: 0.00000 , tp: 0.00000 ) [done] 2020.04 . 12 12 : 10 : 27.368 Core 1 2018.01 . 03 04 : 59 : 38 take profit triggered # 2540 sell 0.01 EURUSD 1.20473 tp: 1.20425 [ # 2676 buy 0.01 EURUSD at 1.20425 ] 2020.04 . 12 12 : 10 : 27.368 Core 1 2018.01 . 03 04 : 59 : 38 deal # 2676 buy 0.01 EURUSD at 1.20425 done (based on order # 2676 ) 2020.04 . 12 12 : 10 : 27.368 Core 1 2018.01 . 03 04 : 59 : 38 deal performed [ # 2676 buy 0.01 EURUSD at 1.20425 ] 2020.04 . 12 12 : 10 : 27.368 Core 1 2018.01 . 03 04 : 59 : 38 order performed buy 0.01 at 1.20425 [ # 2676 buy 0.01 EURUSD at 1.20425 ] 2020.04 . 12 12 : 10 : 27.368 Core 1 2018.01 . 03 04 : 59 : 38 Зашла сделка ########## 2540 ########### 2020.04 . 12 12 : 10 : 27.368 Core 1 2018.01 . 03 04 : 59 : 38 Открыта позиция +++ 2540 +++ записана в структуру ArrayPosition ++++++++++++++ 2020.04 . 12 12 : 10 : 27.368 Core 1 2018.01 . 03 04 : 59 : 40 take profit triggered # 2473 sell 0.01 EURUSD 1.20472 tp: 1.20424 [ # 2677 buy 0.01 EURUSD at 1.20424 ]
Ve böylece bölünme tamamen ortadan kalktı, anlaşıldı ki TakeProfit tarafından bir pozisyon kapatma DEAL_ENTRY_IN'e de uyuyor ???
Bana öyle geliyor ki OnTradeTransaction olayının işlenmesinde bazı değişiklikler yapıldı.
TRADE_TRANSACTION_DEAL_ADD'yi TRADE_TRANSACTION_HISTORY_ADD ile değiştirmeyi deneyin
Bana öyle geliyor ki OnTradeTransaction olayının işlenmesinde bazı değişiklikler yapıldı.
TRADE_TRANSACTION_DEAL_ADD'yi TRADE_TRANSACTION_HISTORY_ADD ile değiştirmeyi deneyin
yardımcı olmuyor Cevap verdiğiniz için teşekkürler.
Bana öyle geliyor ki OnTradeTransaction olayının işlenmesinde bazı değişiklikler yapıldı.
TRADE_TRANSACTION_DEAL_ADD'yi TRADE_TRANSACTION_HISTORY_ADD ile değiştirmeyi deneyin
Pozisyon açan işlemler yazdırılır, yani bu seçim çalışır. Ve işlemlerin nasıl seçileceği - pozisyonların kapatılması - terminal işlemler listesinde görünmelerine rağmen (her zaman birkaç veya üç satır daha yüksek) açık değildir.
En başından deneyeceğim, atomlar zaten kafamda karmakarışık. Sinema klasiğinin dediği gibi - "Peki, kim böyle inşa eder ..... ????".
Halihazırda bir ticaret işlemi var, ancak henüz bir ticaret bileti yok. Doğru şekilde anladım ???
Pozisyon açan işlemler yazdırılır, yani bu seçim çalışır. Ve işlemlerin nasıl seçileceği - pozisyonları kapatma - terminal işlemler listesinde görünmelerine rağmen (her zaman birkaç veya üç satır daha yüksek) açık değildir.
Mavi düğmeye tıklayarak hata ayıklayıcıdan geçmeyi deneyin.
kesme noktalarını önceden ayarlayın ve hangi değerlerin nerede olduğunu ve ne beklendiğini kontrol edin. Yani, herhangi bir hata görmüyorum, bu yüzden kontrol etmeniz gerekiyor, bu nedenle pozisyonların açılışını yazın, stopları ayarlayın, böylece kapanış için uzun süre beklemek zorunda kalmazsınız ...
En başından deneyeceğim, atomlar zaten kafamda karmakarışık. Sinema klasiğinin dediği gibi - "Peki, kim böyle inşa eder ..... ????".
Halihazırda bir ticaret işlemi var, ancak henüz bir ticaret bileti yok. Doğru şekilde anladım ???
Hiç birşey anlamıyorum. İşte çalışan EA'mdan bir kod parçası
ve sonuçta DebugBreak() 'te hiç durmadı; yani her şey sorunsuz çalışıyor.
Görünüşe göre tarihe bir emir eklemek için çalışıyorsunuz ve bir ticaret bileti bekliyorsunuz.