Sormak! - sayfa 108

 
Dave137:
void TrailingPositions() {

double pBid, pAsk, pp;

pp = MarketInfo(OrderSymbol(), MODE_POINT);

if (OrderType()==OP_BUY) {

pBid = MarketInfo(OrderSymbol(), MODE_BID);

//BreakEven routine

if (BreakEven>0) {

if ((pBid-OrderOpenPrice())>BreakEven*pp) {

if ((OrderStopLoss()-OrderOpenPrice())<0) {

ModifyStopLoss(OrderOpenPrice()+0*pp);

}

}

}

if (TrailingStop>0) {

if ((pBid-OrderOpenPrice())>TrailingStop_Over135*pp){ //15 pips TS

ModifyStopLoss(pBid-TrailingStop_Over135*pp);

if (pBid-OrderOpenPrice()>TrailingStop_Over90*pp && pBid-OrderOpenPrice()<TrailingStop_Over135*pp){ //55 pips TS

ModifyStopLoss(pBid-TrailingStop_Over90*pp);

if ((OrderOpenPrice()-pAsk)>TrailingStop +TrailingStep+1*pp && (OrderOpenPrice()-pAsk) < TrailingStop_Over90*pp+TrailingStep-1*pp || OrderStopLoss()==0) {//75 pips TS

ModifyStopLoss(pAsk+TrailingStop*pp);

return;

}

}

}

}

}[/PHP]

Three levels of Trailing Stop:

1) 75 Pips TS up to first 90 Pips Profit.

2) 55 Pips TS after 90 but only up to 135 pips profit.

3) 15 Pips TS after 135 pips profit.

The problem I am having is the Trailing Stop moves both up and down as the price moves up and down . . It should just be moving up as the price profit increases and stop if the price starts dropping! How do I get it to stop moving down as the price drops - The Trailing Stop is acting like a Yo-Yo as the price moves up and down.

I am not sure how to stop this from happening?? Please, I need your expertise!

Humbly,

Dave

örneğin:[PHP]ts = pBid - TrailingStop_Over135*pp;

if (ts > OrderOpenPrice() && ts > OrderStopLoss()) ModifyStopLoss(ts);

 

lütfen yardım isteyebilir miyim

Nerede yanlış olduğunu görmek için herhangi birinden koduma bakmasını isteyebilir miyim lütfen ....Ben çok fazla programcı değilim ve bu konuda biraz yardım için minnettar olurum.

şimdiden çok teşekkürler

ayrıca bir şeyin farkına vardım - kodlayıcının gurusunun programladığına neredeyse tıpa tıp benzeyen bir EA satan Ben Taylor adında bir adam var - belki bu onun müşterilerinden biridir - lol

değilse - kodlayıcı gurusunun bunu bilmesini sağlamalıyız

Dosyalar:
 
Michel:
Gerekirse, önce saat 8'den sonra olup olmadığınızı kontrol edin:
if(Hour() < 8) return;[/PHP]

Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);

double Min = iLow(Symbol(), PERIOD_D1, 0);

int Range = (Max - Min) / Point;

if(Range > 90) return;

...

Merhaba Michel:

kodunuza atıfta bulunuyorum:

if(Saat() < 8) dönüş;

Kodu aşağıdaki gibi değiştirdim:

if(Saat()>12) hr_x=1;

.....

.....

.....

.....

if(hr_x==1) sinyal=50;

Ama tüm histogram çubuğuna 50 sahiptim!!!!

Aşağıdaki tabloya bakarsanız, "Saat" komutu onu tanımıyor gibi görünüyor!!!

Bilginize, 30 dakikalık grafik kullanıyorum, farklı olacak mı? 1 Saat grafiğine geçmeye çalıştım ama sorun hala devam ediyor!

Ayrıca "if(Hour() < 8) return;" denedim ama tüm çubuk gitti!!!

Bir çok şey denedim ama yine de çalıştıramadım.

Bana tekrar tavsiye vermen mümkün mü? teşekkürler

Dosyalar:
untitled_5.jpg  115 kb
 
n3sve1k4s:
Merhaba codersguru, aşağıdaki göstergeye pop-up ve oklarla sinyal ekleyebilir misiniz?

biri sinyal ekleyebilir mi???

 

Üçlü Trailing Stop kodlamamdaki doğru düzeltme için Michel'e teşekkür ederim. Bu umarım yeni ea yaratımıma son düzeltmeyi yapacaktır. Herkesin bilgisinin cömertliği olmasaydı, bu dili programlayamazdım. Bu dilde edindiğim tüm yeni bilgilerle ilgili notlar tutarım. Umarım MT5 tanıtıldığında, kodlama radikal bir şekilde değişmez - her şeye yeniden başlamaktan nefret ederim! Tekrar teşekkürler!!

Dave

<<<

 
solamax:

Nerede yanlış olduğunu görmek için herhangi birinden koduma bakmasını isteyebilir miyim lütfen ....Ben çok fazla programcı değilim ve bu konuda biraz yardım için minnettar olurum.

şimdiden çok teşekkürler

ayrıca bir şeyin farkına vardım - kodlayıcının gurusunun programladığına neredeyse tıpa tıp benzeyen bir EA satan Ben Taylor adında bir adam var - belki bu onun müşterilerinden biridir - lol

değilse - kodlayıcı gurusunun bunu bilmesini sağlamalıyız
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

Sorunlu bir alanı sıfırlamak zorunda kalsaydım, bu yukarıdaki kod olurdu. Alış ve satış için bir geçiş olması gerekir.

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Geçerli + 0);

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Mevcut + 1 ); ///1-Geri

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Geçerli + 0);

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Mevcut + 1 ); ///1-Geri

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Geçerli + 0);

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Mevcut + 1 ); ///1-Geri

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Geçerli + 0);

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Mevcut + 1 ); ///1-Geri

if(Buy1_1>Sat2_1 && Buy1_2<Sat2_2) Sonra Satın Alın; // Uygun 'UP' geçişi gerçekleşti!

if(Sat1_1Al2_2) Sonra Sat; // Uygun 'AŞAĞI' geçiş gerçekleşti!

Dave

 

Bu tam olarak aradığınız şey değil, ama yine de bir göz atın. Başka bir grafiğe iliştirin ve üzerlerinde çalışma ea'ları olan grafiklerden elde edilen tüm kar, zararı izler.

 

Dave - sen bir nimetsin :)

Dave137:
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

Sorunlu bir alanı sıfırlamak zorunda kalsaydım, bu yukarıdaki kod olurdu. Alış ve satış için bir geçiş olması gerekir.

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Geçerli + 0);

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Mevcut + 1 ); ///1-Geri

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Geçerli + 0);

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Mevcut + 1 ); ///1-Geri

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Geçerli + 0);

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Mevcut + 1 ); ///1-Geri

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Geçerli + 0);

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Mevcut + 1 ); ///1-Geri

if(Buy1_1>Sat2_1 && Buy1_2<Sat2_2) Sonra Satın Alın; // Uygun 'UP' geçişi gerçekleşti!

if(Sat1_1Al2_2) Sonra Sat; // Uygun 'AŞAĞI' geçiş gerçekleşti!

Dave

gerçekten çok teşekkürler - deneyeceğim

 

Kodlama yardımı gerekli

Herhangi bir yardım takdir edildi ..

Bu, ticaret kapatma rutininin bir bileşeni olarak bir EA'ya girer.

Her zaman hesabın en yüksek geçmiş bakiyesini döndüren bir değişken oluşturmam gerekiyor. Bunun bir dizi gerektireceğini düşünüyorum?

Pratik anlamda, dil söylüyor olurdu. "Açık karım, hesaptaki tüm zamanların en yüksek bakiyesinden X-pip daha yüksekse, tüm işlemleri kapatın."

Birisi değişkene yardımcı olabilirse, gerisini kodlayabileceğimi düşünüyorum.

Şimdiden teşekkürler.

 

Cevabınız için teşekkürler, ama haklısınız, tam olarak aradığım şey değiller.

Sorunu çözmek için henüz kod bilgim yok.

Hesap bakiyesinin "yüksek filigranını" döndürmek için koda ihtiyacım var.

Tekrar teşekkürler, herhangi bir yardım takdir edildi.

Dave137:
Bu tam olarak aradığınız şey değil, ama yine de bir göz atın. Başka bir grafiğe iliştirin ve üzerlerinde çalışma ea'ları olan grafiklerden elde edilen tüm kar, zararı izler.
Neden: