EA - sayfa 2

 
Maji:
Doğrusu, orada sana yardım edip edemeyeceğimden emin değilim. Birincisi, çünkü bunu yapmak için zaman harcamak zorundayım ve bu şu anda benim için bir sıkıntı. İkincisi, çünkü şimdiye kadar "göstergelerin" tüm çizimleri yapmasına izin verdim ve bunu yapmak için EA'ları hiç kullanmadım. Mümkün ve bence teori aynı.

Codersguru'nun çizgi çizme, oklar vb. üzerine bir bölüm yazdığına inanıyorum. Okumaya çalışın

Yine, kopyalayıp yapıştırmak hala ne yaptığınızı anlamanızı gerektirir. Kendi kendine yardım gibisi yok ve sen bu noktayı çok iyi kanıtlıyorsun. Sıkı çalışmaya devam et.

Tamam, beni yakaladın, sıkı çalışma için biraz kredi kabul edeceğim. TGIF!! Bu konuda takıntılı bir adam oldum. Bir molayı hak ediyorum.

Göstergeleri kullanan çizimle ilgili olan şey... NASIL başarıldığı (bir noktaya kadar) gerçekten umurumda değil, sadece başarılmış olması... Açılma ve kapanma için çizelgeye oklar koyan bir gösterge yapılabilirse, sanırım bu da işe yarar... Canlı hesabımın, test cihazındaki her şeyi, benden bir şey yapmasını söylemeden kendi kendine çektiğini görüyorum...diğer yandan demo hesabımda ...sorunlar var

Çoklu ticaret zamanlaması ile daha çok ilgileniyorum... 'tik modunu' kullanırsam bu düzelir mi? Bunu ileriye dönük testte izliyorum ve çubuk başına bir ticaret yapıyor, bu da sinyalden SONRA işlemleri pip olarak birbirinden oldukça uzak tutabilir. Bir sinyalde 5 pozisyon açacaksam, sinyalin AÇIK olmasını istiyorum, sinyalden yarım saat sonra yayılmadan...(döner)

 

1.01 -uzunluklar oluşturun

Bunun üzerinde biraz çalıştığım ve işe yarayan bir sinyali var. Kullanılan hareketli ortalamalar ve bazı sinyal mantığı ile gogetshorts ile bazı farklılıklar var...Uzunlar üzerinde çalışan orijinal gogetter'dan sinyali çıkardım ve onunla biraz daha oynadım.

Bu en çok GPB/USD 5mTF'yi seviyor. Diğer zaman dilimlerinde hemen hemen çöküyor.

keyfini çıkarın, lütfen sonuçlarınızı/sorunlarınızı vb.

Dosyalar:
 
eric79:
Merhaba, güzel görünen eğri için tebrikler. Bence geliştirilebilecek bir şey testin modelleme kalitesi. %90 daha iyi olur.

GGs 2.11'de buna çok yaklaşıyorum

Sürümü ve yapı numaralarını kullanmaya alışık değilim ...bu benim ilk girişimim... Graham tarafından factoid forumdan eklendi...izlenmesi gereken bir şey daha var....bunlar şimdi grafik penceresinde mevcut yapı ve sürüm numaralarına sahip olun... aynı mantık ve kod sadece daha iyi kozmetikler.

Biz iyileştirmeler üzerinde çalışırken, ikisinin de demoda ileriye dönük test yapmasına izin veriyorum.

Dosyalar:
 

Yine de bunlar içinde ek giriş sinyalleri ve parametreleri geliştirmek istiyorum...

 

Bir gün bir şeyin işe yarayıp ertesi gün çalışmamasını ve herhangi bir değişiklik yapmamış olmamı gerçekten garip buluyorum...

strateji test cihazımdaki EA artık 'maxopentrade' ayarını değiştirdiğimde yanıt vermiyor... ne olursa olsun iki işlem kullanıyor, '0' dersem yine de iki işlem kullanıyor... daha önce bile iyi çalışıyordu bugün ve şimdi aniden, ne söylersem söyleyeyim, her zaman iki açık ticarete izin vereceğine karar verildi....

geçen hafta bir kerede 5 işleme izin vermesini söylediyse, aynı anda 5 işleme izin verdi ve bir kerede 1 ticarete izin vermesini söylediğimde bir ticarete bir kez izin verdi.... İşe yaradığını GÖRDÜM!

Şimdi beni kurtarmaya uğraşamam. ne oluyor?

Belki de if MaxOpenTrade satırında bir parantez veya başka bir şey kaybettiğimi düşündüm...

TradeSettings();

if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

if(OrdersTotal() < MaxOpenTrade)

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0); [/PHP]

so I changed it to this...

[PHP] TradeSettings();

if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

if(OrdersTotal() < MaxOpenTrade){

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

gelişme yok, hala MaxOpenTrade kontrolünü yok sayıyor.

tamam, ikisinin hangi sinyalini değiştirdiğimi takip edersem yardımcı olur .... lol sadece sinyal 2'yi kullanıyorsam ve sinyal 1'deki ayarı değiştiriyorsam bu mantıklı değil mi?

evet bilyelerimi kaybediyorum.

 
for (int o = 0; o <= MaxOpenTrade; o ++)

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

return(0);

Bunun yapmadığı şey, emirleri aynı anda değiştirmek... Sanırım sıra değiştirme işleviyle benzer bir şey yapmam gerekiyor, böylece hepsi aynı anda değişir...

 

Emin değilim, ama yapmak istediğini yapmanın doğru yolu olduğunu düşünmüyorum.

Aşağıdaki işlevi kullanın:

int CountTrades()

{

int count=0;

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()||OrderMagicNumber()==MagicNumber)

if((OrderType()==OP_SELL) || (OrderType()==OP_BUY))

count++;

}//for

return(count);

}

Şimdi programınızda olarak arayın

eğer CountTrades<MaxTrades ise...

Ayrıca, "for" döngüsünde sayma alışkanlığından kurtulun ve bir geri sayım stili kullanın. İşlemleri kapatmaya çalıştığınızda faydalı olacaktır ve genel olarak daha tutarlı bir kodlama stili ile sonuçlanacaktır.

İyi şanlar.

 

Tamam bunu yaptım, GGlongs Ea'daki her şeyi CountTrades() ile güncelledim, hatta daha önce yaptığınız ve OrdersTotal()'ı kullanan CloseAll() şeyini bile... Yukarı bu işlevi çok çağırırım.

EA şimdi aynı anda birden fazla sipariş açmak ve aynı anda s/l veya t/p yapmak için iyi çalışıyor gibi görünüyor...

diğer yandan onları değiştirmek.... bu mantıksız ve hepsini aynı anda değiştirmiyor...

for (int t = 0; t < MaxOpenTrade; t ++)

if(CountTrades() < MaxOpenTrade)

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

return(0);

if (!EachTickMode) BarCount = Bars;

[/PHP]

something about this doesn't work right...however when I do this although it becomes crazy it ends up being more profitable...

this is the code for the 'altered' version that corresponds to the test reports below...when it's like this basically it doesn't modify anything at all....

//Trailing stop for long position

if(TrailingStopMode && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop || OrderOpenPrice() - Bid >= 0) { //below trigger the Ilevel==Ask

if(OrderStopLoss() < Bid - Point * TrailingStop || OrderStopLoss() == 0) {

for (int t = 0; t < MaxOpenTrade; t ++)

if(CountTrades() < MaxOpenTrade)

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

return(0);

if (!EachTickMode) BarCount = Bars;

TrailingStopMode = False; //resets mode after each order

StopLossMode = False; //resets mode after each order

continue;

this is the code that corresponds to the 'unaltered' reports below... This modifys but not as I imagine it should doing them all at the same time....

[PHP]//Trailing stop for long position

if(TrailingStopMode && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop || OrderOpenPrice() - Bid >= 0) { //below trigger the Ilevel==Ask

if(OrderStopLoss() < Bid - Point * TrailingStop || OrderStopLoss() == 0) {

//for (int t = 0; t < MaxOpenTrade; t ++)

//if(CountTrades() < MaxOpenTrade)

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

//return(0);

if (!EachTickMode) BarCount = Bars;

TrailingStopMode = False; //resets mode after each order

StopLossMode = False; //resets mode after each order

continue;

Bunun rapora göre değişmesinden hoşlanmasam da, yine de çok daha karlı....

Sadece yapabileceğimi bilmek için istediğim gibi yapmak için değişikliği kontrol edebilmek istiyorum. belki sonunda bu şekilde bırakmak daha iyidir ama açılış ve kapanışlarda olduğu gibi hepsini aynı anda nasıl değiştireceğimi bilmek istiyorum.

 

Şimdi şimdi şimdi... o kadar ileri gittin... o yüzden çok düşün... takas koduna sahipsin, öyleyse neden sipariş değiştirme şeylerini yapmak için onu değiştirmiyorsun... bunun gibi bir şey...

int ModifyTrades()

{

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()||OrderMagicNumber()==MagicNumber)

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); /etc.

}//for

}

Temelleri anladınız ve şimdi gerisini çözmek size kalmış.

İyi şanslar.

 
Maji:
Şimdi şimdi şimdi... o kadar ileri gittin... o yüzden çok düşün... takas koduna sahipsin, öyleyse neden sipariş değiştirme şeylerini yapmak için onu değiştirmiyorsun... bunun gibi bir şey...

int ModifyTrades()

{

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()||OrderMagicNumber()==MagicNumber)

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); /etc.

}//for

}

Temelleri anladınız ve şimdi gerisini çözmek size kalmış.

İyi şanslar.

işe yarıyor... eke bakın...

.htm dosyası yüklenemeyecek kadar büyüktü...her siparişi aynı anda değiştirdiğini söylemek yeterli....hatta makul derecede kârlı bu kırmızı sinyal için fena değil.

Dosyalar:
Neden: