O zaman durumun böyle olduğu görülüyor. Görünüşe göre, genetik optimizasyonda, osilatörleri açıp kapatmaktan sorumlu parametreler, osilatör parametrelerine göre güçlü bir şekilde baskındır. Yani, bir sonraki nesli yetiştirirken, kapalı osilatör genine sahip bir ebeveyn, bu osilatör için açık geni olan diğer ebeveynlerden gelen bir grup yavruyu öldürecektir. Yani, bu torunlar yanlış parametreler koşuluyla atılacak, yavru vermeyecek ve evrim hızla çıkmaza girecektir. Test süresinin kısa bir aralığında tam optimizasyonda test cihazının davranışına bakmaya çalışın. Bu durumda kombinasyonlarda gereksiz ihmaller olacak mı?
O zaman durumun böyle olduğu görülüyor. Görünüşe göre, genetik optimizasyon sırasında, osilatörleri açıp kapatmaktan sorumlu parametreler, osilatör parametrelerine göre güçlü bir şekilde baskındır. Yani, bir sonraki nesli yetiştirirken, kapalı osilatör genine sahip bir ebeveyn, bu osilatör için açık geni olan diğer ebeveynlerden gelen bir grup yavruyu öldürecektir. Yani, bu torunlar yanlış parametreler koşuluyla atılacak, yavru vermeyecek ve evrim hızla çıkmaza girecektir. Test süresinin kısa bir aralığında tam optimizasyonda test cihazının davranışına bakmaya çalışın. Bu durumda kombinasyonlarda gereksiz ihmaller olacak mı?
Evet, sorun kombinasyonda: genetik algoritma + belirli kombinasyonların engellenmesi. Tam optimizasyon ile her şey doğru çalışıyor, ancak tam optimizasyon gerçekçi olmayan bir şekilde uzun zaman alacaktır.
Optimize ediciye bir şekilde bu tür varyantların kabul edilemez olduğunu ve bunları kullanmaya çalışmaması ve diğer varyantlara odaklanması gerektiğini gösterebileceğimi umuyordum. Aslında, yazdığınız gibi oluyor.
Değerli uzmanlar!!! Lütfen bana bu kodda neyin yanlış olduğunu söyleyebilir misiniz (hatanın periyodik olarak göründüğü kısım sarı renkle vurgulanmıştır)?
//+------------------------------------------------------------------+//| Proba (version_1).mq5 |//| Copyright 2023, MetaQuotes Ltd. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2023, MetaQuotes Ltd."#property link"https://www.mql5.com"#property version"1.00"//--- Global variablesMqlRates pArray[];
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//---ArraySetAsSeries(pArray,true);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//---
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---if(!DownwardTrendline())
{
Print("Ошибка при создании линии DownwardTrendline!!! ", GetLastError());
return;
}
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool DownwardTrendline()
{
int candles=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
double pHigh[];
ArraySetAsSeries(pHigh,true);
CopyHigh(_Symbol,_Period,0,candles,pHigh);
int candleHigh = ArrayMaximum(pHigh,0,candles);
int Data = CopyRates(_Symbol,_Period,0,candles,pArray);
ObjectDelete(0,"DnwardTrendline");
ObjectCreate(0,"DnwardTrendline",OBJ_TREND,0,pArray[candleHigh].time,
pArray[candleHigh].high,pArray[0].time,pArray[0].high);
ObjectSetInteger(0,"DnwardTrendline",OBJPROP_COLOR,Blue);
ObjectSetInteger(0,"DnwardTrendline",OBJPROP_STYLE,STYLE_SOLID);
ObjectSetInteger(0,"DnwardTrendline",OBJPROP_WIDTH,3);
ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true);
return(true);
}
//+------------------------------------------------------------------+
Neden periyodik olarak, sonra strateji test cihazında çalışıyor, sonra çalışmıyor ve günlükte bu mesaj görünüyor:
int Data = CopyRates(_Symbol,_Period,0,candles,pArray);
Taktım:
if(CopyRates(_Symbol,_Period,0,candles,pArray)==-1)
{
Print("Ошибка копирования исторических данных в массив pArray[]!!!", GetLastError());
return(false);
}
ve her şey çalıştı.Çizgiyi istikrarlı ve olması gerektiği gibi çiziyor, ancak yalnızca şimdi strateji test cihazında Uzman Danışmanın her yeni başlangıcında mesajlar periyodik olarak görünüyor:
2023.01.2011:23:37.0642022.01.0303:21:49 Ошибка копирования исторических данных в массив pArray[]!!!40032023.01.2011:23:37.0642022.01.0303:21:49 Ошибка при создании линии DownwardTrendline!!! 4003
Bu, kodu bir şekilde olumsuz etkileyecek mi yoksa bunu "unutabilir miyim"?
O zaman durumun böyle olduğu görülüyor. Görünüşe göre, genetik optimizasyonda, osilatörleri açıp kapatmaktan sorumlu parametreler, osilatör parametrelerine göre güçlü bir şekilde baskındır. Yani, bir sonraki nesli yetiştirirken, kapalı osilatör genine sahip bir ebeveyn, bu osilatör için açık geni olan diğer ebeveynlerden gelen bir grup yavruyu öldürecektir. Yani, bu torunlar yanlış parametreler koşuluyla atılacak, yavru vermeyecek ve evrim hızla çıkmaza girecektir.
Test süresinin kısa bir aralığında tam optimizasyonda test cihazının davranışına bakmaya çalışın. Bu durumda kombinasyonlarda gereksiz ihmaller olacak mı?
O zaman durumun böyle olduğu görülüyor. Görünüşe göre, genetik optimizasyon sırasında, osilatörleri açıp kapatmaktan sorumlu parametreler, osilatör parametrelerine göre güçlü bir şekilde baskındır. Yani, bir sonraki nesli yetiştirirken, kapalı osilatör genine sahip bir ebeveyn, bu osilatör için açık geni olan diğer ebeveynlerden gelen bir grup yavruyu öldürecektir. Yani, bu torunlar yanlış parametreler koşuluyla atılacak, yavru vermeyecek ve evrim hızla çıkmaza girecektir.
Test süresinin kısa bir aralığında tam optimizasyonda test cihazının davranışına bakmaya çalışın. Bu durumda kombinasyonlarda gereksiz ihmaller olacak mı?
Evet, sorun kombinasyonda: genetik algoritma + belirli kombinasyonların engellenmesi. Tam optimizasyon ile her şey doğru çalışıyor, ancak tam optimizasyon gerçekçi olmayan bir şekilde uzun zaman alacaktır.
Optimize ediciye bir şekilde bu tür varyantların kabul edilemez olduğunu ve bunları kullanmaya çalışmaması ve diğer varyantlara odaklanması gerektiğini gösterebileceğimi umuyordum. Aslında, yazdığınız gibi oluyor.
Bir freelance iş oluşturabilir ve işinize başvuran geliştiriciler arasından seçim yapabilirsiniz
https://www.mql5.com/fr/job
Merhaba!
Uzman Danışmanın belirli saatlerde işlem yapmasına izin veren kod MQL5'te nasıl görünüyor? MQL4'ten taşıyamıyorum.
void OnTick()
{
double PriceBid=MarketInfo(0,MODE_BID);
double time = Hour() + Minute()*0.01;
Comment("datum ",inpoint,
"\n", "step", iter,
"n", "zaman", zaman,
"n," "fiyat," Teklif,
"\n", "price", PriceBid);
if(time <= Stop_work_time)
{
//if(Type==BUY || Type==ALL)newbuyorder();
//if(Type==SELL || Type==ALL)newsellorder();
in();
takestop();
stoporders();
connected();
delorders();
}
başka
{
takestop();
delorders();
}
}
void OnTick()
{
double PriceBid=MarketInfo(0,MODE_BID);
double time = Hour() + Minute()*0.01;
Comment("datum ",inpoint,
"{n", "step", iter,
"n", "zaman", zaman,
"n," "fiyat," Teklif,
"\n", "fiyat", PriceBid);
if(time <= Stop_work_time)
{
//if(Type==BUY || Type==ALL)newbuyorder();
//if(Type==SELL || Type==ALL)newsellorder();
in();
takestop();
stoporders();
connected();
delorders();
}
başka
{
takestop();
delorders();
}
}
Bu görevin mq5'te uygulanması şu şekilde tekrarlanabilir
MqlDateTimeHerkese günaydın ve iyi günler!
Değerli uzmanlar!!! Lütfen bana bu kodda neyin yanlış olduğunu söyleyebilir misiniz (hatanın periyodik olarak göründüğü kısım sarı renkle vurgulanmıştır)?
Neden periyodik olarak, sonra strateji test cihazında çalışıyor, sonra çalışmıyor ve günlükte bu mesaj görünüyor:
Saygılarımla, Vladimir.
Herkese günaydın ve iyi günler!
Değerli uzmanlar!!! Lütfen bana bu kodda neyin yanlış olduğunu söyleyin (kodun periyodik olarak hatanın göründüğü kısmı sarı renkle vurgulanmıştır):
Neden periyodik olarak, sonra strateji test cihazında çalışıyor, sonra çalışmıyor ve günlükte bu mesaj görünüyor:
Saygılarımla, Vladimir.
Satırdan sonra bir onay işareti koyun
Data < 1 ise bir şekilde bağırın.
Satırdan sonra bir onay işareti koyun
Veri < 1 ise bir şekilde bağırın.
Günaydın Alexey, ipucu için teşekkürler! Şimdi deneyeceğim.
Saygılarımla, Vladimir.
Onun yerine:
Taktım:
ve her şey çalıştı.Çizgiyi istikrarlı ve olması gerektiği gibi çiziyor, ancak yalnızca şimdi strateji test cihazında Uzman Danışmanın her yeni başlangıcında mesajlar periyodik olarak görünüyor:
Bu, kodu bir şekilde olumsuz etkileyecek mi yoksa bunu "unutabilir miyim"?
Saygılarımla, Vladimir.
O zaman bu bir şekilde kodu olumsuz etkiler mi yoksa bunu "unutabilir miyim"?
Saygılarımla, Vladimir.
Bunu yapmanızı engelleyen nedir?