Sormak! - sayfa 29

 
Yannis:
Dave,

Kodunuzu aşağıdaki snippet olarak değiştirmeyi deneyin ve bunun işe yarayıp yaramadığını bana bildirin.

Yannis

int i=0;

for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && ( OrderMagicNumber () == MagicNumber || MagicNumber==0 ) )

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Puan),Bid-(20*Puan),Cyan); // Zarar durdurmayı değiştir ve kar al

dönüş(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && ( OrderMagicNumber () == MagicNumber || MagicNumber==0 ) )

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Puan),Ask+(20*Puan),Cyan); // Zarar durdurmayı değiştir ve kar al

dönüş(0);

}

dönüş(0);

}

}

Backtester'daki işlemleri her zaman tekrar tekrar değiştirmekle ilgili bir sorunum var. İşlemleri bir kez değiştirmesini nasıl sağlayabilirim. Program uyku moduna geçeceğinden, değiştirilmesi gereken tek işlem, hala açık olan işlemlerdir.

Lütfen Backtest sonuçlarının ekteki .Gif'ine bakın. Bunu düzeltmeye çok yakınım - Lütfen tavsiyede bulunun!! Bu Kar Al ve Zararı Durdur modifikasyonunu uyku moduyla birlikte kullanıyorum. Lütfen aşağıdaki koda bakın

int başlangıç()

{

if (UseHourTrade)

{

int a=0;

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3)) c=1;

if(a==1 && b==1 && c==1)

{

Yorum(

"\n"," * GÜNEŞ RÜZGÂR UZMAN DANIŞMANI *",

"\n",

"\n", " - UYKU DÖNGÜSÜNDE PROGRAM - ",

"\n",

"\n"," > İŞLEM YAPILMAYAN SAATLER! <");

///////////////////UYKU DÖNGÜSÜNÜN BAŞLANGICINDA ZARAR DURDUR & KAR AL DEĞİŞTİR /////////////////

int h=0;

for (int cnt1=SiparişlerToplam()-1;cnt1>=0;cnt1--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Puan),Bid-(20*Puan),Cyan); // Zarar durdurmayı değiştir ve kar al

dönüş(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Puan),Ask+(20*Puan),Cyan); // Zarar durdurmayı değiştir ve kar al

dönüş(0);

}

dönüş(0);

}

}

Dave <<<

LÜTFEN EKLİ KÜÇÜK RESME BAKINIZ!

 

for (int cnt1 =OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect( cnt1 , SELECT_BY_POS, MODE_TRADES);

aynı sayıyı saymasını sağlayın

 

Anlamadım. Bu hatayı nasıl düzeltirim?? Belki görüyorum - cnt1'i h olarak değiştirmeme izin verin. Doğrumuyum?

Dave

<<

 
phoenix:
OrderSelect()'iniz çalışan döngüde temel saymadı

int başlangıç()

{

if (UseHourTrade)

{

int a=0;

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3)) c=1;

if(a==1 && b==1 && c==1)

{

Yorum(

"\n"," * GÜNEŞ RÜZGÂR UZMAN DANIŞMANI *",

"\n",

"\n", " - UYKU DÖNGÜSÜNDE PROGRAM - ",

"\n",

"\n"," > İŞLEM YAPILMAYAN SAATLER! <");

///////////////////UYKU DÖNGÜSÜNÜN BAŞLANGICINDA ZARAR DURDUR & KAR AL DEĞİŞTİR /////////////////

//int h=0;

for (int h=OrdersTotal()-1;h>=0;h--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Puan),Bid-(20*Puan),Cyan); // Zarar durdurmayı değiştir ve kar al

dönüş(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Puan),Ask+(20*Puan),Cyan); // Zarar durdurmayı değiştir ve kar al

dönüş(0);

}

dönüş(0);

}

}

///////////////////////////////////////////// /////////////////////////////////

Değişiklikleri yaptı, ancak tek seferlik bir değişikliğe karşı hala sabit bir değişiklik döngüsü alıyor.

Lütfen tekrar tavsiye verin, lütfen!

Dave

<<<

 

Lütfen kodunuzu [PHP][/PHP] kodları içinde gönderin. Biçimlendirilmiş kodu okumak ve hatalarını ayıklamak çok daha kolaydır.

 

Gösterge Giriş Sekmesi

Giriş Sekmesinin grafiğe eklendiğinde artık gösterilmemesi için bir göstergeyi nasıl ve nerede kodlayabilirim?

Teşekkürler,

solaris

 
iscuba11:
int başlangıç()

{

if (UseHourTrade)

{

int a=0;

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3)) c=1;

if(a==1 && b==1 && c==1)

{

Yorum(

"\n"," * GÜNEŞ RÜZGÂR UZMAN DANIŞMANI *",

"\n",

"\n", " - UYKU DÖNGÜSÜNDE PROGRAM - ",

"\n",

"\n"," > İŞLEM YAPILMAYAN SAATLER! <");

///////////////////UYKU DÖNGÜSÜNÜN BAŞLANGICINDA ZARAR DURDUR & KAR AL DEĞİŞTİR /////////////////

//int h=0;

for (int h=OrdersTotal()-1;h>=0;h--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{ if( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 )

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Puan),Bid-(20*Puan),Cyan); // Zarar durdurmayı değiştir ve kar al

dönüş(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

if( OrderStopLoss() < Teklif - Puan * 15 )

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Puan),Ask+(20*Puan),Cyan); // Zarar durdurmayı değiştir ve kar al

dönüş(0);

}

dönüş(0);

}

}

///////////////////////////////////////////// /////////////////////////////////

Değişiklikleri yaptı, ancak tek seferlik bir değişikliğe karşı hala sabit bir değişiklik döngüsü alıyor.

Lütfen tekrar tavsiye verin, lütfen!

Dave

<<<

mor çizgiyi eklemeyi deneyin ..yardımcı olabilir

 
solaris:
Giriş Sekmesinin grafiğe eklendiğinde artık gösterilmemesi için bir göstergeyi nasıl ve nerede kodlarım?

Teşekkürler,

solaris

bunun yerine neden bir şablon olarak kaydetmeyi denemiyorsunuz... o zaman tüm göstergelerinizi yeni grafiğe çağırdığınızda herhangi bir parametreyi yeniden ayarlamanıza gerek yok

 

Önerdiğin gibi yaptım! (Sabrınız için teşekkür ederim)

for (int cnt1=SiparişlerToplam()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);

** Ama yine de eskisi gibi tek bir ticarette büyük döngü değişiklikleri alıyorum!

Açıkça mantıkta bir döngü içinde bir döngü var!

Dave

<<

Lütfen en son geriye dönük test sonuçlarına bakın. Affedersiniz logo.htm - Ondan kurtulamazsınız.

 
iscuba11:
Önerdiğin gibi yaptım! (Sabrınız için teşekkür ederim)

for (int cnt1=SiparişlerToplam()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);

** Ama yine de eskisi gibi tek bir ticarette büyük döngü değişiklikleri alıyorum!

Açıkça mantıkta bir döngü içinde bir döngü var!

Dave

<<
Lütfen en son geriye dönük test sonuçlarına bakın. Affedersiniz logo.htm - Ondan kurtulamazsınız.

Yukarıdaki moru eklemeyi denediniz mi?

if( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 )

ve if( OrderStopLoss() < Bid - Point * 15 )