Backtest'te harika EA! - sayfa 114

 
DudeWorks:
ayrıca MT editörünün hemen dışında bir dosya yazma örneği var ...

Bu, bir csv dosyasına giriş yapmanıza, istediğiniz çıktınız için değişiklik yapmanıza izin verecektir.

int handle;

datetime orderOpen=OrderOpenTime();

handle=FileOpen("c:\cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle>0)

{

FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen));

FileClose(handle);

}

IBFX live'dayım, sizin için mikro lotlarda canlı testi iletebilirim. Ancak hesapta başka canlı işlemlerim var, bu yüzden CT sonuçlarını ayrı ayrı çıkarmam gerekecek.

mail adresi için pm atın

Değerlendirdiğim göstergelerin yanı sıra tüm bunları dosyaya yazdırmam gerekiyor... şu anda bunları dergiye yazdırıyor.

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, SlipPage, StopLoss, Bid - (TakeProfit * Point), "NeuroCluster-testing-AI-LS1", MagicNumber, 0, Green);

if(ticket > 0)

{

if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))

{

int handle;

datetime orderOpen=OrderOpenTime();

handle=FileOpen("C:\cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle>0)

{

FileWrite(handle,"Hour: ",TimeHour(CurTime())," Minute: ",TimeMinute(CurTime()));

FileWrite(handle,"SellPossibilityMid*SellPossibilityQuality:", SellPossibilityMid*SellPossibilityQuality);

FileWrite(handle,"BuyPossibilityMid*BuyPossibilityQuality:", BuyPossibilityMid*BuyPossibilityQuality);

FileWrite(handle,"UndefinedPossibilityMid*UndefinedPossibilityQuality:", UndefinedPossibilityMid*UndefinedPossibilityQuality);

FileWrite(handle,"UndefinedSucPossibilityQuality:", UndefinedSucPossibilityQuality);

FileWrite(handle,"SellSucPossibilityQuality:", SellSucPossibilityQuality);

FileWrite(handle,"BuySucPossibilityQuality:", BuySucPossibilityQuality);

FileWrite(handle,"UndefinedPossibilityQuality:", UndefinedPossibilityQuality);

FileWrite(handle,"SellPossibilityQuality:", SellPossibilityQuality);

FileWrite(handle,"BuyPossibilityQuality:", BuyPossibilityQuality);

FileWrite(handle,"UndefinedSucPossibilityMid:", UndefinedSucPossibilityMid);

FileWrite(handle,"SellSucPossibilityMid:", SellSucPossibilityMid);

FileWrite(handle,"BuySucPossibilityMid:", BuySucPossibilityMid);

FileWrite(handle,"UndefinedPossibilityMid:", UndefinedPossibilityMid);

FileWrite(handle,"SellPossibilityMid:", SellPossibilityMid);

FileWrite(handle,"BuyPossibilityMid:", BuyPossibilityMid);

FileClose(handle);

}

bunun nasıl yapılacağından tam olarak emin değilim... henüz bu doğru mu? bu bir dosya oluşturmuyor. doğru olmamalı.

2006.11.08 11:21:54 2006.10.06 12:08 Cyberia Trader1.9 R2.2 AlertEuro EURUSDm,H1: error(4101): yanlış dosya adı

2006.11.08 11:21:54 2006.10.06 12:08 Cyberia Trader1.9 R2.2 AlertEuro: "C:\cyberia_log.csv" mutlak dosya yoluna izin verilmez

????

nesi var?

 

tamam bu daha iyi....

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, SlipPage, StopLoss, Bid - (TakeProfit * Point), "NeuroCluster-testing-AI-LS1", MagicNumber, 0, Green);

if(ticket > 0)

{

if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))

{

datetime sorderOpen=OrderOpenTime();

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle!=-1)

{

FileWrite(handle,"Hour: ",TimeHour(CurTime())," Minute: ",TimeMinute(CurTime()));

FileWrite(handle,"SellPossibilityMid*SellPossibilityQuality:", SellPossibilityMid*SellPossibilityQuality);

FileWrite(handle,"BuyPossibilityMid*BuyPossibilityQuality:", BuyPossibilityMid*BuyPossibilityQuality);

FileWrite(handle,"UndefinedPossibilityMid*UndefinedPossibilityQuality:", UndefinedPossibilityMid*UndefinedPossibilityQuality);

FileWrite(handle,"UndefinedSucPossibilityQuality:", UndefinedSucPossibilityQuality);

FileWrite(handle,"SellSucPossibilityQuality:", SellSucPossibilityQuality);

FileWrite(handle,"BuySucPossibilityQuality:", BuySucPossibilityQuality);

FileWrite(handle,"UndefinedPossibilityQuality:", UndefinedPossibilityQuality);

FileWrite(handle,"SellPossibilityQuality:", SellPossibilityQuality);

FileWrite(handle,"BuyPossibilityQuality:", BuyPossibilityQuality);

FileWrite(handle,"UndefinedSucPossibilityMid:", UndefinedSucPossibilityMid);

FileWrite(handle,"SellSucPossibilityMid:", SellSucPossibilityMid);

FileWrite(handle,"BuySucPossibilityMid:", BuySucPossibilityMid);

FileWrite(handle,"UndefinedPossibilityMid:", UndefinedPossibilityMid);

FileWrite(handle,"SellPossibilityMid:", SellPossibilityMid);

FileWrite(handle,"BuyPossibilityMid:", BuyPossibilityMid);

FileClose(handle);

}

else

{

int err;

err=GetLastError();

Print("error(",err,"): ",ErrorDescription(err));

return(0);

}

tamam bu bir dosya oluşturuyor ama dosya sadece 1 girdi içeriyor HER sipariş değil....oy

 
DudeWorks:
Senin için kodlayacağım, bana bu geceye kadar ver, başka ne atmak istediğini söyle

Yukarıdaki siber mantıklarla birlikte...

Ayılar ve boğalar güç göstergesini, cci'yi, adx'in 3 değerini, macd ve stokastik, rsi ve mevcut çubukta yakın çalışmaya dayalı bir 1MA'yı test etmeyi düşünüyorum.(kapanın MA'sı) Değerlendirilmesinin işe yarayacağını düşündüğünüz başka göstergeler varsa, devam edin ve onları da boşaltın. Sadece bir profil oluşturmak istediğimi anlıyorsunuz, bu yüzden ne kadar çok açı o kadar iyi gerçekten… bir noktaya kadar sanırım.

Eklemem gereken bir şey daha var. Başka bir EA üzerinde yaptığım, bir sipariş açıldığında hesap öz sermaye değerini kaydeden ve ardından sipariş kapandığında bunu hesap öz sermaye değeriyle karşılaştıran ve işlemin kazanan mı yoksa kaybeden mi olduğunu belirleyen bir çalışma...Bu verilere ihtiyacım var Bunun gibi işlemlerin sonucunu da dahil etmek için damping yapın, böylece analiz ettiğimizde ticareti hangi kategoriye koyacağımızı biliriz.

Sanırım, birden fazla işlem hesap özvarlığını değiştirebileceğinden, bunun yerine orderopenprice ve ordercloseprice'den çıkmak için yeniden çalışacağım... bir dakika....

Yolun yarısındayım zaten kodda bu var zaten sadece biraz daha ince ayar gerekiyor ...

////////////sonuçları kaydet////////////////

void RecordLongOutcomes()

{

if(Teklif<SiparişOpenFiyat())

{

OrderSelect(OrderTicket(),SELECT_BY_POS,MODE_TRADES);

Print(" Kaybeden Uzun ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);

}

dönüş (0);

}

void RecordShortOutcomes()

{

if(Sor>SiparişOpenFiyat())

{

OrderSelect(OrderTicket(),SELECT_BY_POS,MODE_TRADES);

Print(" Kaybeden Kısa ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);

}

dönüş(0);

}

 

yani burada ne çalışıyordu.. aynı Fikir bir süre önce vardı ama bunu yapamayacak kadar tembeldim... korelasyonları belirlemek için

Sonunda bir emir sinyali verdiğinde hangi olasılıkların olduğunu merak ettim, bu yüzden bu gerçekten göstermeli ..

Bununla birlikte, her satırın genişliği oldukça geniş olabilir, ancak sadece gerçekten seçilen göstergeleri günlüğe kaydedersek, içeri girebileceğimizi düşünüyorum.

MT4 dosya genişliği 64 alan sanırım..

mailimi sana pm attım

 
DudeWorks:
yani burada ne çalışıyordu.. aynı Fikir bir süre önce vardı ama bunu yapamayacak kadar tembeldim... korelasyonları belirlemek için

Sonunda bir emir sinyali verdiğinde hangi olasılıkların olduğunu merak ettim, bu yüzden bu gerçekten göstermeli ..

Bununla birlikte, her satırın genişliği oldukça geniş olabilir, ancak sadece gerçekten seçilen göstergeleri günlüğe kaydedersek, içeri girebileceğimizi düşünüyorum.

MT4 dosya genişliği 64 alan sanırım..

mailimi sana pm attım

Açık olarak! Gerçekten de filtrelerimizde aradığımız şey hassasiyettir ve bu bizim işimize nasıl yarayacağını gösterebilir.

tamam harika, sana keşfetmen için Hasta projemi göndereceğim ama bunun seni bu veri dökümünü almaktan alıkoymasına izin verme, tamam mı?

Takıldığımda daha fazla deneyime sahip bir geliştiriciye sahip olmaktan memnuniyet duyuyorum. Henüz çok fazla deneyime sahip olmayan bir acemiyim.

Çıktıya gelince. Bu platformdan çıkardığınız hiçbir şey muhtemelen excel'in boyutlarını geçemez. İhtiyacım olan şey, kolayca tanımlanabilir olması, böylece onu excel'e aktardığımda , sınırlayıcılarla ayrılmış, bir araya getirilmiş belgelenmemiş bir grup sayı yerine neyle çalıştığımı görebiliyorum. Her değere sahip veri etiketlerine ihtiyacım var. 15 CT alanı artı 8 gösterge, CCI, RSI, 1MA, bearspower, bullspower,adx(üç değer) artı ancak macd ve stochastics'i yapıyorsunuz, bunun için 6 rakamını verirseniz, toplam alanlar = 29 artı kazanma sonuçları (önceki gönderiye bakın) veya kaybetme =30 açılış ve kapanış ve zaman eklediğim gibi 3 Genel Toplam = 33.

33 alan / sipariş. bu bir şeyi ortaya çıkarmalı, ha? Bir diğer küçük iyilik, eğer o tarih saatini gerçekten yazdırabilirseniz (dosyaya yazdırırsanız), bilgisayarın kullandığı interger değeri yerine bir insanın anlayabileceği bir şeyi tarih saat için anlayabilir, bu da yardımcı olacaktır.

 

Bununla ilgili bir şey bana hata mesajı verdi ...

OrderSelect'i kapatana kadar 'Sipariş Kapatma işlevi için geçersiz bilet'.

ama sanırım bundan ne çıkarmaya çalıştığımı görebiliyorsunuz.

/////////////record outcomes/////////////////

void RecordLongOutcomes()

{

//OrderSelect(OrderTicket(),SELECT_BY_POS,MODE_TRADES);

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

{

if(OrderType()==OP_BUY)

{

if(OrderOpenPrice() + Spread < OrderClosePrice())

{

datetime borderOpen=OrderOpenTime();

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle!=-1)

{

FileWrite(handle,"Winning Long OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",borderOpen);

FileClose(handle);

Print(" Winning Long ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);

}

else

{

int err;

err=GetLastError();

Print("error(",err,"): ",ErrorDescription(err));

return(0);

}

}

else

{

datetime buyorderOpen=OrderOpenTime();

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle!=-1)

{

FileWrite(handle,"Losing Long OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",buyorderOpen);

FileClose(handle);

Print(" Losing Long ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);

}

else

{

int err1;

err=GetLastError();

Print("error(",err1,"): ",ErrorDescription(err1));

return(0);

}

}//if win or lose

}//if buy

}//if symbol and magic number

return (0);

}//record long outcomes

void RecordShortOutcomes()

{

//OrderSelect(OrderTicket(),SELECT_BY_POS,MODE_TRADES);

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

{

if(OrderType()==OP_SELL)

{

if(OrderOpenPrice() - Spread > OrderClosePrice())

{

datetime borderOpen=OrderOpenTime();

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle!=-1)

{

FileWrite(handle,"Winning Short OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",borderOpen);

FileClose(handle);

Print(" Winning Short ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);

}

else

{

int err3;

err3=GetLastError();

Print("error(",err3,"): ",ErrorDescription(err3));

return(0);

}

}

else

{

datetime sellorderOpen=OrderOpenTime();

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle!=-1)

{

FileWrite(handle,"Losing Short OrderTicket: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",sellorderOpen);

FileClose(handle);

Print(" Losing Short ",OrderTicket()," Opened: ",OrderOpenPrice()," Closed: ", Bid);

}

else

{

int err4;

err4=GetLastError();

Print("error(",err4,"): ",ErrorDescription(err4));

return(0);

}

}//if win or lose

}//if buy

}//if symbol and magic number

return (0);

}//record short outcomes
 

sonuçları kaydetmek için eklediğim kod filewrite() dışında iyi çalışıyor

Şimdi dosyayı oluşturuyorum, ancak test cihazından geçen son sipariş gibi görünen yalnızca bir girişi var, bu yüzden benim için olduğunu düşündüğüm şey, dosyanın sonuna eklemek yerine her girişin üzerine yazmak. Bunu nasıl düzelteceğimi bilseydim, muhtemelen bu veri dökümünü şimdi çıkarabilirdim.

 
Aaragorn:
tamam bu bir dosya oluşturuyor ama dosya sadece 1 girdi içeriyor HER sipariş değil....oy

Dosyayı her açtığınızda üzerine yazılıyor. Bir çözüm, dosyayı init() işlevinde açmak ve onu deinit() işlevinde kapatmaktır.

 
tururo:
Dosyayı her açtığınızda üzerine yazılıyor. Bir çözüm, dosyayı init() işlevinde açıp deinit() işlevinde kapatmaktır.

Okuma ve yazma bayraklarının nasıl kullanılacağını anladığımdan emin değilim.

Ben böyle örneklerde görüyorum...

tutamaç=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

veya

tutamaç=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

peki bu mümkün mü?

tutamaç=FileOpen("cyberia_log.csv", FILE_CSV|FILE_READ|FILE_WRITE, ';');

sonuna tam olarak nasıl ekleyeceğimi anlamıyorum.

init() içinde nasıl açılacağından emin değilim

O ZAMANLAR

sonuna her yeni siparişi ekleyin

O ZAMANLAR

deinit() ile kapat

gibi bir şey olduğunu hayal ediyorum.

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_READ, ';');

init ve sonra

FileWrite(handle,"Sipariş Açılma Zamanı: ",sorderOpen);

FileWrite(handle,"SatOlanağıOrtası*SatOlanağıKalitesi:", SellOlanağıOrtası*SatOlanağıKalitesi);

FileWrite(handle,"BuyPossibilityMid*BuyPossibilityQuality:", BuyPossibilityMid*BuyPossibilityQuality);

FileWrite(handle,"UndefinedPossibilityMid*UndefinedPossibilityQuality:", UndefinedPossibilityMid*UndefinedPossibilityQuality);

FileWrite(işleç,"UndefinedSucPossibilityQuality:", UndefinedSucPossibilityQuality);

FileWrite(tanıtıcı,"SellSucPossibilityQuality:", SellSucPossibilityQuality);

FileWrite(handle,"BuySucPossibilityQuality:", BuySucPossibilityQuality);

FileWrite(işleç,"UndefinedPossibilityQuality:", UndefinedPossibilityQuality);

FileWrite(tanıtıcı,"SellPossibilityQuality:", SellPossibilityQuality);

FileWrite(handle,"BuyPossibilityQuality:", BuyPossibilityQuality);

FileWrite(handle,"UndefinedSucPossibilityMid:", UndefinedSucPossibilityMid);

FileWrite(tanıtıcı,"SellSucPossibilityMid:", SellSucPossibilityMid);

FileWrite(handle,"BuySucPossibilityMid:", BuySucPossibilityMid);

FileWrite(işleç,"UndefinedPossibilityMid:", UndefinedPossibilityMid);

FileWrite(tanıtıcı,"SellPossibilityMid:", SellPossibilityMid);

FileWrite(tanıtıcı,"BuyPossibilityMid:", BuyPossibilityMid); FileWrite(handle,"Kısa OrderTicket Kazanma: ",OrderTicket()," Opened @: ",OrderOpenPrice()," Closed @: ",OrderClosePrice()," Order Open Time: ",borderOpen);

ve sonra tanımda

FileClose(tutamaç);

bu doğru mu?

 
//+------------------------------------------------------------------+

//| We initialize the adviser |

//+------------------------------------------------------------------+

int init()

{

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

SavedBlockSell = BlockSell;

SavedBlockBuy = BlockBuy;

AccountStatus();

GetMarketInfo();

ModelingPeriod = ValuePeriod * ValuesPeriodCount; // Period of simulation in minutes

if (ValuePeriod != 0 )

ModelingBars = ModelingPeriod / ValuePeriod; // Quantity of steps in the period

CalculateSpread();

return(0);

}

"Çok fazla dosya açık " yazan bir hata alıyorum?

Neden: