Kapanış Sorunları, Lütfen yardım edin - sayfa 3

 

Herkese merhaba
Herkesin yardımıyla, semptom değişti.
....if(OrderSelect(index, SELECT_BY_TICKET) ifadesi..SELECT_BY_POS olarak değiştirildi.Kod doğru olmaktan çok uzak.Program satıyor ve bir pip sonra hemen kapanıyor.Sonuç, SL veya SL olmadığını gösteriyor. TP. Yani bir akıl sağlığı kontrolü için, SL ve TP'yi (500) bir parçayı OrderSend'e ekledim. Değişiklik yok. Tüm yürütmeler 1 veya 2 pip içinde. Bu ilginçleşiyor. Neden olduğundan emin değilim, henüz! Binden fazla infaz gerçekleşti. 4 saatlik bir çubukta.
Araştıracağım, ancak herhangi bir yardım memnuniyetle karşılanacaktır.

 

Merhaba Ayşe
Benden önce yazdığını bulmak için yazdım. Ne yapıyorsun?

 

tekrar merhaba
Daha iyi bir mantık anlayışı için programı biraz yeniden biçimlendirmeye çalışıyorum
Programın sizi memnun etmesini istiyorum

 
Ais wrote >>

tekrar merhaba
Daha iyi bir mantık anlayışı için programı biraz yeniden biçimlendirmeye çalışıyorum
Programın sizi memnun etmesini istiyorum

Merhaba Ayşe
Çok naziksin. Teşekkür ederim. Zamanınız değerli. Dinlenme eminim memnun edecektir.
Son gönderimden bu yana sorunun bir kısmının kilidini açtım. Program kapanacak, istediğim gibi değil.
Kapatma sorununun anahtarı, ATR'yi düzgün bir şekilde başlatamamamdı.
Satış pozisyonunu kapatmanın öncesini ve sonrasını size göstereceğim.

Sonra....if (OrderClosePrice() >= OrderOpenPrice() + (ATR*2)
Şimdi.....if (OrderClosePrice() >= OrderOpenPrice() + (40*Puan)...Bu, Satış pozisyonunu kapatacak

Programın çalışmasını bu şekilde amaçlamadım. Ancak test amacıyla yeni kodu ekledim.
Sorunun ATR'de olduğunu kanıtlamaya yardımcı olur. ATR'yi uygun şekilde başlatmamış olmalıyım.
Daha fazla test etmek için ATR adında yeni bir değişken oluşturmaya çalışmak yerine iATR'yi eklemeye çalıştım.
Nasıl kodlamaya çalıştığımı gösteriyorum.

if (OrderClosePrice() >= OrderOpenPrice() + ((iATR(NULL,0,20,1)*2)*Puan)

Bu da işe yaramadı.
Tekrar teşekkürler.
Senden haber bekliyorum.
 

Merhaba Ayşe
Öneri için teşekkürler. 365 (yıllık) vs my_method kullanma fikri iyi karşılandı. Daha kısa zaman dilimli test amaçları
sadece kolaylık sağlamak için olmalıdır.
Daha öğreneceğim çok şey var. Sonunda ATR'yi nasıl yerleştireceğimi buldum, ancak onu çoğaltamıyorum. Örnek aşağıdaki gibidir:

Şu anda sahip olduğum şey bu...... if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1))) // =Zor Durma
Bu işe yarıyor ama istediğim bu değil
.....if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1) )*2 ), için çalışıyorum
Bu çalışmıyor. Umarım, aklımdaki gibi size ve başkalarına gösterilir. iATR 2 ile çarpılır.
Bunun için herhangi bir öneriniz ??? Bu çözüldüğünde, giriş pozisyonları için de ATR'nin yarısını alabilirim.

Denediğim ama işe yaramayan başka bir yol daha vardı...if(OrderClose - OrderOpenPrice - (iATR(NULL,0,20,1)*2)) <= 0)

Zaman ayırdığınız için tekrar teşekkürler. Eminim bilgelik için kapınızı çalan çok kişi vardır.
Şerefe
 

Merhaba Huckleberry,
Sadece açılış işlevini yapmak için ayrıldım.
Ve şu anda kâr sabitlemenin mantığını anlamaya çalışıyorum.
OrderSend()'inizde durmalar ve alımlar eksik, sorun değil, ancak kapatma komutu yalnızca kayıp durumunda çalışır.
Ve yeni program stilinin anlaşılabilirliği hakkındaki görüşlerinizi öğrenmek istiyorum, https://www.mql5.com/en/forum/124521/page2 .
Şimdilik hoşça kal,
:)

 

Merhaba Ayşe
Cevabınız için teşekkürler.
StopLoss veya TakeProfit olmamasının nedenini açıklamama izin verin.
SL ve TP'yi OrderSend'e eklemeyerek, SL ifadesinin altında farklı bir konumdadır....

if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1)))

Bu işe yarasa da, tam olarak uygun SL değildir. Örnek listelenmiştir Ben son yazım....

if (OrderClose >= OrderOpenPrice + (iATR(NULL,0,20,1))*2)

Yukarıdaki ifadede... iATR'deki kayma bir çubuktan diğerine geçebilir. OrderSend'i SL ve TP ile kullanarak vardiya değişiminden yararlanamıyorum.

Her fonksiyon şu anda çalışıyor, sadece fonksiyonları nasıl ince ayar yapacağımı öğrenmem gerekiyor.
Gözleminiz ve sorunuz için teşekkür ederiz.
Şerefe

 

SL ve TP olmadan çalışmak sorun değil.
Ancak yine de kâr durumunda siparişi kapatmak için koşula ihtiyacımız var.
Lütfen yenilenen "iSignalClose" işlevine bir göz atın,
https://www.mql5.com/en/forum/124521/page2 .
Şimdi, elbette, sanal SL'nin durumu.
Ama yine de sanal TP koşuluna ihtiyacımız var.
Cevabını bekliyorum.
:)

 

Sanal TP için SL koşuluna benzer, ancak başka bir faktör kullanarak ekledim.
Gelecekte bu parametreleri optimize etmek kolay ve rahat olacaktır.

Optimize etmek için istenen parametreleri "harici" olarak bildirin.
Misal:

 ////////////////////////////////////////////////////////////////////<         3>
// < 1.1. Data : Input >                                          //<          >
//                                                                //<          >
// < 1.1. Input             7 =       4 i       3 d       - s   > //<          >
// <      1. Strategy       4 =       2 i       2 d       - s  /> //<          >
// <      2. Trading        3 =       2 i       1 d       - s  /> //<          >
// </1.1. Input             7 =       4 i       3 d       - s   > //<          >
//                                                                //<          >
// <      1. Strategy 4 >=========================================//<          >
                    int       iBasePeriod       = 20            ; //<          >
                    int       iBaseBar          = 1             ; //<          >
extern              double    dFactorTP         = 2.0           ; //<          >
extern              double    dFactorSL         = 2.0           ; //<          >
// </     1. Strategy 4 >=========================================//<          >
//                                                                //<          >
// <      2. Trading 3 >==========================================//<          >
                    int       iSlippage         = 1             ; //<          >
                    int       iMagic            = 0             ; //<          >
                    double    dLots             = 0.1           ; //<          >
// </     2. Trading 3 >==========================================//<          >
//                                                                //<          >
//                                                                //<          >
//                                                                //<          >
// </1.1. Data : Input >                                          //<          >
     

Optimizasyondan sonra orijinal parametre değerlerini optimize edilmiş olanlarla değiştirin ve "extern" bildirimlerini silin.

"ACB6" olarak da bilinen "A System: Championship 2008 Final Edit" için optimizasyon örneği, https://www.mql5.com/en/forum/112633/page7#276861 :
Dosyalar:
1e.txt  46 kb
1r.txt  49 kb