yorum yapınca işlem giriyor mu
//if (OpenOrdersThisPair( Symbol ())== 0 )ne zaman giriyor
LotSize = 0.1 ;
vb. işlemlere girmeye başlayana kadar yolunuza devam edin, orada bir kez muhtemelen sorunun ne olduğunu anlayacaksınız. hh
Evet, parti büyüklüğü "0" olsa bile uzun taraftan giriyor...
OpenOrderThisPair'i değiştirmek de çalışmıyor.... Hmmm. Çok garip...
OpenOrderThisPair'i değiştirmek de çalışmıyor.... Hmmm. Çok garip...
DomGilberto :
Evet, parti büyüklüğü "0" olsa bile uzun taraftan giriyor...
OpenOrderThisPair'i değiştirmek de çalışmıyor.... Hmmm. Çok garip...
Evet, parti büyüklüğü "0" olsa bile uzun taraftan giriyor...
OpenOrderThisPair'i değiştirmek de çalışmıyor.... Hmmm. Çok garip...
Bu test sıfırdan farklı bir değer döndürürse. . .
if (OpenOrdersThisPair( Symbol ()) == 0 )
. . . OrderSend() çağrılmaz, ancak yine de SellTicketOrder'ın 0'dan büyük olup olmadığını kontrol edersiniz. . .
Bunu yap . . .
if (direction== 1 ) //--Sell--// { { double ssl=sell_stop_price; double stp=sell_takeprofit_price; LotSize = (RiskedAmount/(pips_to_ssl/pips))/ 10 ; if (OpenOrdersThisPair( Symbol ())== 0 ) { int SellTicketOrder = OrderSend ( Symbol (),OP_SELLSTOP,LotSize,sellPrice, 3 ,ssl,stp, NULL ,MagicNumber, 0 ,Red); if (SellTicketOrder > 0 ) { Print ( "Order Placed #" , SellTicketOrder); } else { Print ( "Order Send Failed, error # " , GetLastError ()); } } }
Hayır - satış emri göndermek istemiyor gibi görünüyor ...
Bir siparişi tetiklemek için OrderEntry işlevini gönderen for döngüsü içindeki "IF" ifadeleriyle ilgili kodu yazma şeklimde bir hata olmalı...
Bir siparişi tetiklemek için OrderEntry işlevini gönderen for döngüsü içindeki "IF" ifadeleriyle ilgili kodu yazma şeklimde bir hata olmalı...
DomGilberto :
Hayır - satış emri göndermek istemiyor gibi görünüyor...
Bir siparişi tetiklemek için OrderEntry işlevini gönderen for döngüsü içindeki "IF" ifadeleriyle ilgili kodu yazma şeklimde bir hata olmalı...
Peki şimdi nasıl bir hata alıyorsunuz? Bir tane almazsanız ve "Sipariş verildi # 12345" almazsanız, o zaman OrderSend() aranmıyor ve OpenOrdersThisPair() işlevinizle ilgili bir sorununuz var. . . kodunuzu yayınlayın.
Hayır - satış emri göndermek istemiyor gibi görünüyor...
Bir siparişi tetiklemek için OrderEntry işlevini gönderen for döngüsü içindeki "IF" ifadeleriyle ilgili kodu yazma şeklimde bir hata olmalı...
Bu çalıştığında, uzun taraf için iyi çalışıyor (son 2 saattir bununla oynuyorum). Mesele şu ki, hareketli ortalama parametrelerine göre IF ifadeleri ile ilgili olarak nerede yanlış gittiğimi ("CheckForMaTrade" işlevi olarak adlandırdığım) bildiğim için, sizi ve belirli birini büyük olasılıkla saracağım ve nasıl olduklarını "true" OrderEntry'yi OrderSend'e gönderecek... Sorun şu ki, hala o kısmı düzgün yazmayı öğreniyorum...
//+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if (OpenOrdersThisPair( Symbol ())>= 1 ) { if (UseMoveToBreakEven)MoveToBreakEven(); if (UseTrailingStop)AdjustTrail(); if (Use_MA_Trail)MA_Trail(); } if (IsNewCandle())CheckForMaTradeLong(); if (IsNewCandle())CheckForMaTradeShort(); //---- return ( 0 ); }
DomGilberto :
Bu çalıştığında, uzun taraf için iyi çalışıyor (son 2 saattir bununla oynuyorum). Mesele şu ki, hareketli ortalama parametrelerine göre IF ifadeleriyle ilgili olarak nerede yanlış gittiğimi ("CheckForMaTrade" işlevini çağırdığım) bildiğim için sizi ve belirli bir kişiyi büyük olasılıkla saracağım ve nasıl olduklarını "true" OrderEntry'yi OrderSend'e gönderecek... Sorun şu ki, hala o kısmı düzgün yazmayı öğreniyorum...
Bu çalıştığında, uzun taraf için iyi çalışıyor (son 2 saattir bununla oynuyorum). Mesele şu ki, hareketli ortalama parametrelerine göre IF ifadeleriyle ilgili olarak nerede yanlış gittiğimi ("CheckForMaTrade" işlevini çağırdığım) bildiğim için sizi ve belirli bir kişiyi büyük olasılıkla saracağım ve nasıl olduklarını "true" OrderEntry'yi OrderSend'e gönderecek... Sorun şu ki, hala o kısmı düzgün yazmayı öğreniyorum...
Raptorİngiltere :
Peki şimdi nasıl bir hata alıyorsunuz? Bir tane almazsanız ve "Sipariş verildi # 12345" almazsanız, o zaman OrderSend() aranmıyor ve OpenOrdersThisPair() işlevinizle ilgili bir sorununuz var. . . kodunuzu yayınlayın.
Peki şimdi nasıl bir hata alıyorsunuz? Bir tane almazsanız ve "Sipariş verildi # 12345" almazsanız, o zaman OrderSend() aranmıyor ve OpenOrdersThisPair() işlevinizle ilgili bir sorununuz var. . . kodunuzu yayınlayın.
Böyle .. . . ne hatası alıyorsunuz vs. . .
Oh üzgünüm - Artık ne olursa olsun herhangi bir hata almıyorum. Sadece alım emirleri alıyorum ve satış emri yok ...
MA çapraz geçişleriyle ilgili önceki iş parçacığımla ilgili - hala anlamıyorum! Ama insanlar bana cevap verirken (cevap lol anlamasam da) kimseyi sarsmak ve ölü bir atı dövmek istemiyorum! RaptorUK'a yardımınız için teşekkürler!
MA çapraz geçişleriyle ilgili önceki iş parçacığımla ilgili - hala anlamıyorum! Ama insanlar bana cevap verirken (cevap lol anlamasam da) kimseyi sarsmak ve ölü bir atı dövmek istemiyorum! RaptorUK'a yardımınız için teşekkürler!
if (IsNewCandle())CheckForMaTradeLong(); if (IsNewCandle())CheckForMaTradeShort();Fonksiyonlara çarpanlara ayırma işlemlerini desteklerken, New Candle/New Bar'ın çoğu varyasyonunu desteklemiyorum çünkü bu fonksiyon sadece ONCE [başlangıçta()] olarak adlandırılabilir.
int start(){ static datetime time0; bool isNewCandle = time0 != Time[ 0 ]; time0 = Time[ 0 ]; // Once per start only. : if (isNewCandle)CheckForMaTradeLong(); if (isNewCandle)CheckForMaTradeShort();
Teşekkürler WHRoeder - iyi bir ipucu!
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
Uzun pozisyonların neden işe yaradığını ve kısa işlemlerin neden hiç işe yaramadığını anlamakta zorlanıyorum?
Eldeki verilen komisyoncu ile ondalık basamak sayısını belirlemek için init işlevimle ilgili bir şey olduğunu hissediyorum. (Test cihazını ilk başlattığımda, hayali siparişlerin neden atıldığının suçlusu bu gibi görünüyor ...)
Kısa tarafın neden bana bu hatayı söylediğine dair bir fikri olan var mı?
Şimdiden teşekkürler (kod şu anda biraz dağınık, elbette temizlemeyi düşünüyorum!)