75000 seçenek - 4GB RAM ve 4GB disk önbelleği yeterli değil mi??? - sayfa 5

 
İhtiyaç olana kadar görselleştirmemiz yok.
Ama bir sonraki versiyonda muhtemelen yapacağız.

Sana ne yapabileceğimi göstereceğim.
Bir uzman %100 transfer edilemez,
Yaklaşık bir şey yapacağım, çünkü burada mesele uzmanda değil,
ve optimize edici olasılığı?
 
Mak :
İhtiyaç olana kadar görselleştirmemiz yok.
Ama muhtemelen bir sonraki sürümde yapacağız.

Sana ne yapabileceğimi göstereceğim.
Bir uzman %100 transfer edilemez,
Yaklaşık bir şey yapacağım, çünkü burada mesele uzmanda değil,
ve optimize edici olasılığı?
Hiçbir şekilde öyle değil. Öz, büyük bir kaynak harcaması gerektiren tüm sergileme ve kullanım kolaylığı kompleksindedir.

Programcıları, harici bir optimize edici ile bir bağlantı yerleştirmek için tüm kodlarını karıştırmaya zorlamak ve ardından orada bir şey hesaplayan bir optimize ediciyi çalıştırmak bir şeydir. Ve para için. Ve herhangi bir Uzman Danışman için normal "Genetik optimizasyon" onay kutusunu ayarlamak, normal sınırları (on milyarlarca değil) seçmek, sonuçları almak ve optimize edici çalışırken ek programlar olmadan sonuçları tam orada görüntülemek başka bir konudur. Ve ücretsiz.

Sistemlerimizi sürekli olarak mümkün olduğunca basit, kullanışlı ve sorunsuz hale getiriyoruz. Birisi "test cihazım 10-100 kat daha hızlı" olduğunu iddia ediyor, ancak bunu kanıtlamıyor. Birisi "küresel bir boşlukta at" ile hayali sorunlardan bahsediyor. Ve MetaTrader kullanan yüz binlerce tüccar için toplu olarak çalışan çalışma sistemleri yapıyoruz. Ve bina sistemleri ideolojimiz nedeniyle de herhangi bir rakipten büyük bir boşluk içindeyiz.

ps: bu arada, genetik optimizerinizin dağıtım kiti neden MetaTrader'ın dağıtım kitinden daha büyük? Uygunsuz nasıl yazılır?
 
Peki, uzaklaştı.

Omega'da para birimim yok, dağıtımda ne varsa onu çalıştırdım
- 31 yıl için IBM (D1) (> 11 bin bar).

Athlon XP 1500+ üzerinde 1000 koşu ~10 dakika sürdü

Hisse senetleri daha fazla oynaklığa sahip olduğundan parametre aralıklarını genişletti

Kâr Al = (10, 10000, 1)
İzleyenDurdur = (10, 10000, 1)
Lot = (1, 1000, 1) - Bu sayıda hisseye sahibim
MACDOpenLevel = (1, 100, 1)
MACDCKapatDüzey = (1, 100, 1)
MATrendPeriod = (2, 100, 1)

Toplam parametre alanı ~ 10^14 durumdur.

EasyLanguage ve ScreenShot için kod aşağıdadır.
Ayrıca Omega'dan gelen sinyal kodunu ve raporları bir Zip dosyasına ekledim.

( kod yapıştırmak işe yaramadı)
================================================= ======================
Girişler: Gen(1);
Vars: TakeProfit(50),
İzleyenDurdur(30),
lot(0.1),
MACDOpenLevel(3),
MACDCKapatSeviye(2),
MATrendPeriod(26);

Değişkenler: R(0),K(0);
CurrentBar = 1 ise Başlayın
R = TS.GO.Start("MACD");
Gen = 1 ise Başlayın
R = TS.GO.Modu(0);
R = TS.GO.Popul(100);
R = TS.GO.Var("Gen");
R = TS.GO.Var("İşlemler");

R = TS.GO.Yöntem(1);
R = TS.GO.Criterion("NetKar",1);
R = TS.GO.Criterion("MaxDD",1);
R = TS.GO.Criterion("PF",1);

K = TS.GO.Chrom("Durur");
R = TS.GO.Gen("Kar Al", K, 10, 10000, 1);
R = TS.GO.Gen("TralingStop", K, 10, 10000, 1);

K = TS.GO.Chrom("Çok");
R = TS.GO.Gen("Çok", K, 1, 1000, 1);

K = TS.GO.Chrom("MACD");
R = TS.GO.Gen("MACDOpenLevel", K, 1, 100, 1);
R = TS.GO.Gen("MACDCloseLevel", K, 1, 100, 1);
R = TS.GO.Gen("MATrendPeriod", K, 2, 100, 1);
son;

R = TS.GO.Next(Gen);
R = TS.GO.Set("Gen",Gen);
R = TS.GO.ShowViewer;

TakeProfit = TS.GO.Get("TakeProfit", 0);
TralingStop = TS.GO.Get("TralingStop", 0);
Lot = TS.GO. Get("lot", 0);
MACDOpenLevel = TS.GO.Get("MACDOpenLevel",0);
MACDCloseLevel = TS.GO.Get("MACDCloseLevel",0);
MATrendPeriod = TS.GO.Get("MATrendPeriod",0);
son;

Vars: MacdCurrent(0), MacdPrevious(0), SignalCurrent(0),
SignalPrevious(0), MaCurrent(0), MaPrevious(0);

MacdCurrent = MACD(Kapat,12,26);
MacdPrevious = MACD(Kapat,12,26)[1];
SignalCurrent = XAverage(MacdCurrent,9);
SignalPrevious = XAverage(MacdCurrent,9)[1];
MaCurrent = XAverage(Close,MATrendPeriod);
MaÖnceki = XAverage(Close,MATrendPeriod)[1];

Vars: StopLoss(0);
MarketPosition = 0 ise Başlayın
MacdCurrent < 0 ise
ve MacdCurrent > SignalCurrent
ve MacdPrevious < SignalPrevious
ve AbsValue(MacdCurrent) > (MACDOpenLevelPoint)
ve MaCurrent > MaPrevious
Sonra Başla
Buy Lots bu çubuğu yakınlarda paylaşıyor;
son;

MacdCurrent > 0 ise
ve MacdCurrent < SignalCurrent
ve MacdPrevious > SignalPrevious
ve AbsValue(MacdCurrent) > (MACDOpenLevelPoint)
ve MaCurrent < MaÖnceki
Sonra Başla
Satış Lotları bu çubuğu kapanışta paylaşır;
son;
son;

MarketPosition > 0 ise Başlayın
MacdCurrent > 0 ise
ve MacdCurrent < SignalCurrent
ve MacdPrevious > SignalPrevious
ve AbsValue(MacdCurrent) > (MACDCloseLevelPoint)
Sonra Başla
ExitLong("CloseLong") bu çubuk kapatıldığında;
son;

StopLoss = 0 ise StopLoss = EntryPrice - TralingStop Points;
StopLoss = MaxList(StopLoss,Yüksek - TralingDurma Noktaları);

ExitLong ("TakeLong") Giriş Fiyatında Sonraki Çubuk + TakeProfit Puan Limiti;
ExitLong ("StopLong") StopLoss Durağındaki Sonraki Çubuk;
son;

MarketPosition < 0 ise Başlayın
MacdCurrent < 0 ise
ve MacdCurrent > SignalCurrent
ve MacdPrevious < SignalPrevious
ve AbsValue(MacdCurrent) > (MACDCloseLevelPoint)
Sonra Başla
ExitShort("CloseShort") bu çubuk kapatıldığında;
son;

StopLoss = 0 ise StopLoss = EntryPrice + TralingStop Points;
StopLoss = MinList(StopLoss,Düşük + TralingStopPoints);

ExitLong ("TakeShort") Giriş Fiyatında Sonraki Çubuk - TakeProfit Puan Sınırı;
ExitLong("StopShort") StopLoss Durağındaki Sonraki Çubuk;
son;


EĞER LastBarOnChart O Zaman Başla
R = TS.GO.Set("İşlemler",Toplamİşlemler);
R = TS.GO.Set("NetProfit",NetProfit);
R = TS.GO.Set("MaxDD",MaxIDDrawDown);
R = TS.GO.Set("PF",BrütKar/(0,001-BrütZarar));
R = TS.GO.Fitness(0);
son;
================================================= ======================


Dosyalar:
macd_test.zip  32 kb
 
Renat :
Mak :
İhtiyaç olana kadar görselleştirmemiz yok.
Ama bir sonraki versiyonda muhtemelen yapacağız.

Sana ne yapabileceğimi göstereceğim.
Bir uzman %100 transfer edilemez,
Yaklaşık bir şey yapacağım, çünkü burada mesele uzmanda değil,
ve optimize edici olasılığı?
Hiçbir şekilde değil. Öz, büyük bir kaynak harcaması gerektiren tüm sergileme ve kullanım kolaylığı kompleksindedir.

Programcıları, harici bir optimize edici ile bir bağlantı yerleştirmek için tüm kodlarını karıştırmaya zorlamak ve ardından orada bir şey hesaplayan bir optimize ediciyi çalıştırmak bir şeydir. Ve bu para için. Ve herhangi bir Uzman Danışman için normal "Genetik optimizasyon" onay kutusunu ayarlamak, normal sınırları (on milyarlarca değil) seçmek, sonuçları almak ve optimize edici çalışırken ek programlar olmadan sonuçları tam orada görüntülemek başka bir konudur. Ve ücretsiz.

Sistemlerimizi sürekli olarak mümkün olduğunca basit, kullanışlı ve sorunsuz hale getiriyoruz. Birisi "test cihazım 10-100 kat daha hızlı" olduğunu iddia ediyor, ancak bunu kanıtlamıyor. Birisi "küresel bir boşlukta at" ile hayali sorunlardan bahsediyor. Ve MetaTrader kullanan yüz binlerce tüccar için toplu olarak çalışan çalışma sistemleri yapıyoruz. Ve bina sistemleri ideolojimiz nedeniyle de herhangi bir rakipten büyük bir boşluk içindeyiz.

ps: bu arada, genetik optimizerinizin dağıtım kiti neden MetaTrader'ın dağıtım kitinden daha büyük? Uygunsuz nasıl yazılır?

Renat, bunu sana göstermemi kendin İSTEDİN.
Ne olduğunu defalarca sordum...
Bir önceki gönderiyi sana sorduğumda yazdıysan,
konuşma farklı bir şekilde ilerleyecekti ve bu MACD'yi Omega için yeniden yazmam gerekmeyecekti.
"Ben deve olmadığımı" kanıtlamak için başka şeyleri bir kenara bırakmak zorunda kaldım.

Aslında.
Ne güzel bir şey yaptığını söylüyorsun ve bedavaya...
Seninle bu konuda tartıştım mı (Seninle hiçbir konuda tartışmadım)?

Dikkatinizi optimize edicinizin çok fazla bellek tükettiği gerçeğine çektim.
Bunun, henüz GO'nuz olmadığında, optimize edicinizin eski sürümünden kalma bir miras olduğunu düşünüyorum.
Bunu düzeltmek kolaydır ve optimize edicinizi daha da iyi hale getirecektir.

Yavaş ol, benden eleştiri yok.
Ben sadece sana yardım etmek istedim.
 
Konumunuzu ayrıntılarla savunmanız çok başka bir şey. Gerçekten bu kadar geniş bir alana sahip sadece 1000 yineleme olmasının nedeni bu mu? Çok sert oluyor. Bu Expert Advisor'ı MT4'te 1,5 milyar değerlik bir alan üzerinde çalıştırdım ve 18000 EURUSD H1 bar geçmişi üzerinde 4 dakikada 4400 temiz arama elde ettim.

Görev, elbette, bir boşluktaki küresel bir atın alanından geliyor ve MT4'te, çok çeşitli olası değerler nedeniyle (kapsamlı arama mekanizmalarının bir mirası) aslında belirli bir miktarda belleği yanlış ayırmaya çalışıyoruz. ). Bu noktayı düzeltelim.

Azminiz için teşekkür ederiz - test cihazını daha derinlemesine incelememizi sağladınız.
 
Renat писал (а):

.... Bu yüzden mi bu kadar geniş bir alana sahip sadece 1000 yineleme var? Çok sert oluyor. Bu Expert Advisor'ı MT4'te 1,5 milyar değerlik bir alan üzerinde çalıştırdım ve 18000 EURUSD H1 bar geçmişi üzerinde 4 dakikada 4400 temiz arama elde ettim. ....
Ve genetikte, arama hızı parametre uzayının boyutundan bağımsızdır.
Amaç fonksiyonunun (uygunluk) kalitesine bağlıdır.

Ayrıca, bildiğimiz diğer algoritmalardan daha hızlı bir büyüklük sırası olan orijinal algoritmayı kullanıyoruz.
1000 çalıştırma zaten biraz fazla, çözümü değerlendirmek için genellikle 100-200 çalıştırma (herhangi bir sayıda parametre için) kullanırım.
 
Renat писал (а):
Evet, aslında bu Expert Advisor, testte aşırı miktarda bellek tüketiyor ve çöküyor. Anlayacağız.
Sağlanan kod için teşekkürler.


Renat, henüz haber yok mu?
 

aklı başında, haber var. Bir bellek sızıntısı buldum. Derleyici, doğru yere bir dize yayın komutu eklemedi.

 
stringo писал (а):

aklı başında, haber var. Bir bellek sızıntısı buldum. Derleyici, doğru yere bir dize yayın komutu eklemedi.


tamam yeni yapı bekliyorum
 
sane :
dize :

aklı başında, haber var. Bir bellek sızıntısı buldum. Derleyici, doğru yere bir dize yayın komutu eklemedi.


tamam yeni yapı bekliyorum

Örneğinizi EA'nın yeni 198 yapısı üzerinde çalıştırdım:







Artık aşırı bellek tüketimi yok, genetik optimizasyon etkinken, 21600'den 1088 yineleme yapıldı ve hesaplamalar 8 dakika 31 saniye sürdü.

EA'nın kendisi hakkında - ciddi hatalar nedeniyle asla kullanılmamalıdır:
  • yanlış durma seviyeleri ve tüm günlükler bununla ilgili mesajlarla dolu
  • SetOrder işlevi için, bir komisyoncudan uzmanlar tarafından alım satım konusunda ciddi bir yasak alabilirsiniz.

    Bu işlevde, eski fiyatlarda ticaret yapmak için beş katlı bir girişim var, Expert Advisor'ın yazarı ne yaptığını hiç anlamıyor (hala güncel olmayan bir fiyattan kaymasına rağmen RefreshRates kullanmaya çalışıyor). Ve hiçbir şekilde anlamlı bir hata işleme yoktur.