Nasıl kodlanır? - sayfa 101

 

Alım ve satımlarım oldu.

panteraschoice:
Bu geriye dönük test, alım satım mı yaptı yoksa sadece bir tanesi mi? Benimle sadece alım var (veya sadece kodu değiştirdiğimde satıyorum). Gerçekten bir hata gösteren hiçbir şey görmedim.
 

bu RSIFilter_v1... Bunu bilmiyorum...

burada gösterdiğiniz kod bunu yapmak zorunda ...

İşte yaptığım şey... eklere bakın.

panteraschoice:
Yani bu tamam mı?

double Sg=iCustom(NULL,0,"RSIFilter_v1",5,5,0,1);

if ( Sg>0) Sıra = SIGNAL_BUY;

if (Sg<0 ) Sıra = SIGNAL_SELL;
 
IN10TION:
Modelleme kalitesi %90 olmalı, neden göstermiyor bilmiyorum.

Sanırım uyumsuz hatalardan kaynaklanıyor. Backtester , birkaç sürümden bu yana bu sorunu yaşıyor. Kötü veriler yüzünden olduğunu duydum.

FerruFx

 

boole eşleşme hatası

Herkese selam, bu hatayı alıyorum ve nasıl çözeceğimi anlamıyorum, farklı türdeki değişkenleri eşleştirme sorunu olduğunu düşünüyorum

işte kod parçası

çift

Satın AlmaKoşul,

SatDurum,

DurUzun,

Satışı Durdur;

göstergeler

çift gösterge1,

gösterge2

gösterge 3; (ama int)

yani o şartları istiyorum

StopLong = ((SellValueCurrent !=0 && SellValueCurrent2 !=0) || (TrendEnvDown != EMPTY_VALUE));

StopSell = ((BuyValueCurrent !=0 && BuyValueCurrent2 !=0) || (TrendEnvUp != EMPTY_VALUE));

öyleyse neden bazen 1'e ihtiyacım varken 0'ım yok ve bazen her ikisine de 1'im var ya da bunlardan biri 1 olmalı mı? bu şimdi benim için hiç mantıklı değil neden yanlış? Lütfen bana yardım et!!!

ps satış değeri ve satın alma değeri çifttir

 

Bunu düzeltmek için daha fazla koda ihtiyacım var ...

dilerseniz mq4'ünüzü yayınlayın

payback:
Herkese selam, bu hatayı alıyorum ve nasıl çözeceğimi anlamıyorum, farklı türdeki değişkenleri eşleştirme sorunu olduğunu düşünüyorum

işte kod parçası

çift

Satın AlmaKoşul,

SatDurum,

DurUzun,

Satışı Durdur;

göstergeler

çift gösterge1,

gösterge2

gösterge 3; (ama int)

yani o şartları istiyorum

StopLong = ((SellValueCurrent !=0 && SellValueCurrent2 !=0) || (TrendEnvDown != EMPTY_VALUE));

StopSell = ((BuyValueCurrent !=0 && BuyValueCurrent2 !=0) || (TrendEnvUp != EMPTY_VALUE));

öyleyse neden bazen 1'e ihtiyacım varken 0'ım yok ve bazen her ikisine de 1'im var ya da bunlardan biri 1 olmalı mı? bu şimdi benim için hiç mantıklı değil neden yanlış? Lütfen bana yardım et!!!

ps satış değeri ve alış değeri çift
 
panteraschoice:
Birşeyler yanlış gidiyor. Demo hesabı tamamen silindi.

İşte uzman günlüğünden yüzlerce "Sipariş Kapatma işlevi için geçersiz fiyat" içeren küçük bir bölüm:

209.23 sl'de GBPJPY: 212.23 tp: 208.23 tamam

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: geçersiz fiyat 2.02750000

OrderClose işlevi için

10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: geçersiz fiyat 1.55750000

OrderClose işlevi için

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: kapat #11685361 sat

2.0270 sl'de 0.10 GBPCHF: 2.0570 tp: 2.0170, 2.0275 fiyatında

10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: geçersiz fiyat 1.03350000

OrderClose işlevi için

10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: geçersiz fiyat 1.55740000

OrderClose işlevi için

bu, OrderClose için parçadaki kısımdır,

Bunda neyin yanlış olduğunu anlamıyorum, belki biri yardım edebilir?

//----------------------

int l_ord_total_72 = OrdersTotal();

for (int l_pos_76 = 0; l_pos_76 < l_ord_total_72; l_pos_76++) {

if (OrderSelect(l_pos_76, SELECT_BY_POS, MODE_TRADES)) {

if (OrderSymbol() == Symbol()) {

l_cmd_80 = OrderType();

if (l_cmd_80 == OP_BUY) {

l_count_56++;

if (l_isar_48 > Kapat[0]) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet);

}

if (l_cmd_80 == OP_SELL) {

l_count_60++;

if (l_isar_48 < Kapat[0]) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet);

}

}

}

}

//--------------------

Belki komisyoncudan yeni fiyatlar aldınız, hata alırsanız OrderClose'dan önce RefreshRates fonksiyonunu kullanmayı deneyin.

 

Sipariş Kapatma hatası

Birşeyler yanlış gidiyor. Demo hesabı tamamen silindi.

İşte uzman günlüğünden yüzlerce "Sipariş Kapatma işlevi için geçersiz fiyat" içeren küçük bir bölüm:

209.23 sl'de GBPJPY: 212.23 tp: 208.23 tamam

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: geçersiz fiyat 2.02750000

OrderClose işlevi için

10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: geçersiz fiyat 1.55750000

OrderClose işlevi için

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: kapat #11685361 sat

2.0270 sl'de 0.10 GBPCHF: 2.0570 tp: 2.0170, 2.0275 fiyatında

10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: geçersiz fiyat 1.03350000

OrderClose işlevi için

10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: geçersiz fiyat 1.55740000

OrderClose işlevi için

bu, OrderClose için parçadaki kısımdır,

Bunda neyin yanlış olduğunu anlamıyorum, belki biri yardım edebilir?

//----------------------

int l_ord_total_72 = OrdersTotal();

for (int l_pos_76 = 0; l_pos_76 < l_ord_total_72; l_pos_76++) {

if (OrderSelect(l_pos_76, SELECT_BY_POS, MODE_TRADES)) {

if (OrderSymbol() == Symbol()) {

l_cmd_80 = OrderType();

if (l_cmd_80 == OP_BUY) {

l_count_56++;

if (l_isar_48 > Kapat[0]) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet);

}

if (l_cmd_80 == OP_SELL) {

l_count_60++;

if (l_isar_48 < Kapat[0]) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet);

}

}

}

}

//--------------------

Derleme hata vermiyor.

 
IN10TION:
bunu düzeltmek için daha fazla koda ihtiyacınız var ... dilerseniz mq4'ünüzü yayınlayın

hayır hepsini yayınlamak istemiyorum ama değişkenlerin tür eşleşmesiyle ilgili bir sorun olduğunu düşünüyorum daha fazla açıklamaya çalışacağım

gösterge1 e 2 çift sağ

bu yüzden buyvaluecurrent = icustom(gösterge1 vb.);

buyvaluecurrent2 = icustom(gösterge2 vb.);

sellvaluecurrent = icustom(gösterge1 vb.); // çiftler değil mi?

trendendvup =icustom (gösterge3 vb.); //int

ve benzeri

yani buycondition= ((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup != Empty_Value );

bu ifade yalnızca bazen çalışır ve ayrıca bir sorun olabilir, bu yüzden sorum neden? bool veya double türü ne olursa olsun buycondition'un 1 veya 0 döndürmesini istiyorum

 
Kalenzo:
Belki komisyoncudan yeni fiyatlar aldınız, hata alırsanız OrderClose'dan önce RefreshRates fonksiyonunu kullanmayı deneyin.

Evet teşekkür ederim!

 

iCustom göstergelerinin ne gönderdiğine bağlı olarak...

çift satınalma değericurrent = iCustom(gösterge1);

double buyvaluecurrent2 = iCustom(gösterge2);

çift satış değericurrent = iCustom(gösterge1);

int trendendvup = iCustom(gösterge3);

böyle...

if((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup !=0)) {buycondition=0;}

if((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup !=1)) {buycondition=1;}

sadece "&&" ve bazı koşulları kullanarak satın alma durumunuza bir bool alamazsınız, if() işlevini kullanın...

umarım bu yardımcı olur, yoksa biraz daha yakın

payback:
hayır hepsini yayınlamak istemiyorum ama değişkenlerin tür eşleşmesiyle ilgili bir sorun olduğunu düşünüyorum daha fazla açıklamaya çalışacağım

gösterge1 e 2 çift sağ

bu yüzden buyvaluecurrent = icustom(gösterge1 vb.);

buyvaluecurrent2 = icustom(gösterge2 vb.);

sellvaluecurrent = icustom(gösterge1 vb.); // çiftler değil mi?

trendendvup =icustom (gösterge3 vb.); //int

ve benzeri

yani buycondition= ((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup != Empty_Value);

bu ifade yalnızca bazen çalışır ve ayrıca bir sorun olabilir, bu yüzden sorum neden? bool veya double türü ne olursa olsun buycondition öğesinin 1 veya 0 döndürmesini istiyorum