Nasıl kodlanır? - sayfa 222

 

Teşekkürler Roger09

Orijinal olarak ForExTyro tarafından gönderildi

Günde yaptığı işlem sayısını yalnızca iki (2) ile sınırlayacak bir EA'ya kod eklemeye çalışıyorum. Günde sadece BİR uzun ticaret ve BİR kısa ticaret. Şimdiye kadar sahip olduğum kod bu, ancak geriye dönük testte çalışmıyor.

Bana yardımcı olabilir misiniz!?

Yanıt Gönderen Roger09

Yer değiştirmek

tarihsaat UzunTicaret=0;

tarihsaat ShortTrade=0;

ile

statik tarihsaat LongTrade=0;

statik tarihsaat ShortTrade=0;

Bu kadar?

İşte bu!

Teşekkürler Roger09

 

Merhaba,

Bu, derlenmiş EA & Ind'in nasıl göründüğüne güzel bir örnek.

b.

 
Kalenzo:
Buyrun! Zevk almak!

Merhaba Kalenzo,

Tekrar yardımınıza ihtiyacım var, benim için bir kod daha yazar mısınız?

Daha önce yaptığınız gibi bilgi, LSMA Bar bilgisini koymak istiyorum.

LSMA Woodie Bar Yeşil olduğunda, Word LONG (yeşil renk) gösterilir,

ve Woodie Bar Red olduğunda, Word Short'u (kırmızı renk) gösterir.

ekteki resme bakın..

http://i98.photobucket.com/albums/l277/compobey/CCIinfo.jpg

Saygılarımızla,

rekabet etmek

 

Yardım talebi

Selam millet

Ayda yaklaşık +100 pip yapan çok basit bir sistem kullanıyorum.

EA'ya koymak isterdim ama kodlamada çok yeniyim ve kendimi çok kaybolmuş hissediyorum . Belki siz çocuklar/bayanlar bu EA'yı yaratmama yardım edebilir ve hepimiz kullanabilir miyiz?

Lütfen ilgileniyorsanız bana bildirin ve EA'nın yapması gerekenlerin ayrıntılarını yayınlayacağım.

Teşekkür ederim

 

kalenzo

Kalenzo:
Buyrun! Zevk almak!

Tekrar merhaba Kalenzo,

Benim için düzelttiğin indi'yi gözlemliyorum.

Genellikle iyi çalışır, ancak bazen hatta yanlış renk koyulur.

Resimde gördüğünüz gibi Domates veya Kırmızı olması gereken yerler var ama onun yerine DodgerBlue çıkıyor.

Kurallar şunlardı;

Değer (çubuk kapanışında) > çubuğun önceki kapanışından (yukarı doğru) =

Değer < 0 olduğunda DodgerBlue

Değer > 0 olduğunda mavi

Değer (barın kapanışında < barın önceki kapanışından (aşağı iniyor) =

Değer > 0 olduğunda domates

Değer < 0 olduğunda kırmızı

Hataların oluştuğu yerleri kırmızı oklarla işaretledim.

Lütfen koda bir bakabilir misiniz?

Elimden geldiğince açıklamaya çalıştım ama daha fazla bilgiye ihtiyacın olursa bana haber ver.

Teşekkürler.

Dosyalar:
 
Klondyke:
Tekrar merhaba Kalenzo,

Benim için düzelttiğin indi'yi gözlemliyorum.

Genellikle iyi çalışır, ancak bazen hatta yanlış renk koyulur.

Resimde gördüğünüz gibi Domates veya Kırmızı olması gereken yerler var ama onun yerine DodgerBlue çıkıyor.

Kurallar şunlardı;

Değer (çubuk kapanışında) > çubuğun önceki kapanışından (yukarı doğru) =

Değer < 0 olduğunda DodgerBlue

Değer > 0 olduğunda mavi

Değer (barın kapanışında < barın önceki kapanışından (aşağı iniyor) =

Değer > 0 olduğunda domates

Değer < 0 olduğunda kırmızı

Hataların oluştuğu yerleri kırmızı oklarla işaretledim.

Lütfen koda bir bakabilir misiniz?

Elimden geldiğince açıklamaya çalıştım ama daha fazla bilgiye ihtiyacın olursa bana haber ver.

Teşekkürler.

Üzgünüm, dosyayı unutmuşum.

Dosyalar:
 

satır etiketine nasıl gidilir?

Metatrader 4'te bir satır etiketine nasıl giderim

gibi bir şey

if(a > b) Fred'e gitti

if(c > d) jim'e git

:fred

burada biraz daha kod yap

: jim

burada biraz kod yap

Bir cevabım var ama biraz daha açıklamaya ihtiyacım var

Bunun yerine işlevlere bazı kodlar yazabilirsiniz. Bunun gibi bir şey:

if(a > b) ReturnValue = fred();

if(c > d) ReturnValue = jim();

int fred()

{

burada biraz daha kod yap

}

int jim()

{

burada biraz kod yap

}

ReturnValue nedir? bir işlev değil, aslında nasıl yazarım

 

Gönderdiğiniz örnekte 'ReturnValue' sadece bir değişkendir. Adı herhangi bir şey olabilirdi ama size bu kodu kim verdiyse 'ReturnValue' kullanmış.

Dürüst olmak gerekirse, iki işlevden döndürülen değerle gerçekten bir şeyler yapmak niyetinde değilseniz, bu biçimin pek bir anlamı yoktur. VB'de olduğu gibi goto kavramını kullanamazsınız (ya da Temel miydi - hatırlayamıyorum!).

Sadece bir şey gibi...

if(a>b)DoThisFunction();

if(a<b)DoAnotherFunction();

O zaman, program goto kullanarak atladığında ne yapmayı amaçladıysanız, bunun yerine iki ilgili işlevde yapardınız.

Umarım bu bir anlam ifade eder.

Saygılarımızla

Lüks

 
luxinterior:
Gönderdiğiniz örnekte 'ReturnValue' sadece bir değişkendir. Adı herhangi bir şey olabilirdi ama size bu kodu kim verdiyse 'ReturnValue' kullanmış.

Dürüst olmak gerekirse, iki işlevden döndürülen değerle gerçekten bir şeyler yapmak niyetinde değilseniz, bu biçim pek bir anlam ifade etmez. VB'de olduğu gibi goto kavramını kullanamazsınız (ya da Temel miydi - hatırlayamıyorum!).

Sadece bir şey gibi...

if(a>b)DoThisFunction();

if(a<b)DoAnotherFunction();

O zaman, program goto kullanarak atladığında ne yapmayı amaçladıysanız, bunun yerine iki ilgili işlevde yapardınız.

Umarım bu bir anlam ifade eder.

Saygılarımızla

Lüks

Cevabınız için teşekkürler, yapmaya çalıştığım şey, EA'nın iki koşul arasında seçim yapmasını sağlamak, ancak hangisi önce değişirse onu seçmek.

Yani senin örneğinde

if(a>b)DoThisFunction();

if(a<b)DoAnotherFunction();

eğer bunu yaparsan veya bunu yaparsan daha fazlasına ihtiyaç duyar, çünkü diğer koşul a & b'den önce c & d'nin değişmiş olmasıdır, eğer öyleyse bunu yapın ve a & b'yi yok sayın. Bu yüzden bir çizgiye gitmeye çalışıyordum çünkü if o zaman başka bir seçim yapmasını sağlayamıyorum.

çünkü gerçekte ben varım

if(a>b && c>d) // buradan satın al

başka

if(a>b && c<d) // burada yakın bir satın alma yapın

başka

ters satış yapmak veya yakın bir satış yapmak

ancak a & b'den önce c & d değiştiyse, yukarıdaki kodu yok sayın ve yukarıdaki testleri bunun yerine c & d üzerinde yapın

Üzgünüm, çamur kadar açık

 

CSV Dosyalarıyla Çalışma -- Deliriyorum

Merhaba,

CSV-Files ile çalışan bir EA yazıyorum.

Test için CSV Dosyalarımı aşağıdaki klasöre koydum:

/test kullanıcısı/dosyalar

İşte EA'mdan sadece küçük bir kısım:

int handle = 0;

int Long = 0;

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

if (handle > 0)

{

Long= FileReadNumber(handle);

FileClose(handle);

}

Print("LongMarket = ", Long);

Print("Long handle = ", handle);

EA'mda CSV Dosyalarını okudum ve sonra bazı tam sayıları yazıyorum.

Şimdi testimi yaptığımda ve dergide "Yazdır" mesajlarını okuduğumda, genellikle artık CSV Dosyalarında yazılmayan eski tamsayılar alıyorum!

Örneğin:

İlk önce 3 yazıyor ve EA'm çalışıyor ve 0'ı dosyaya yazıyor,

Bu CSV Dosyasında sadece 3'ü görebiliyorum!!

Bu CSV Dosyasını temizlediğimde ve o " /tester/files"-Klasörüne 3'lü yeni bir CSV Dosyası koyduğumda, daha önce testten yalnızca 0'ı okuyabilirim!!!! Ama EA'nın 0'ı nerede okuduğunu bulamıyorum!!!

Çıldıracağım!!!!!

Umarım sorumu anlayabilir ve bana bir ipucu verebilirsiniz!!

Neden: