Nasıl kodlanır? - sayfa 7

 

Anladığım kadarıyla bunu yapmanın en iyi/en kolay yolu dediğiniz gibi bir önceki çubuğa bakmak olacak. Geç kalabilirsin ve olmayabilirsin. İşte demek istediğim:

Start() işlevi, her onay işaretini işler. MT4, tasarım gereği, yalnızca bir onay işaretinden sonra zamanı işler. Bu, yeni çubuğun ilk işaretine kadar grafiğinizde yeni bir çubuğun görünmediği anlamına gelir. Bu nedenle, bir çubuğun sonuna yaklaştığınızda, uyarınız her tıklamadan sonra (sinir bozucu yol) çalarsa, çubuğun son tikte bir uyarı alırsınız. Uyarınız için önceki çubuğa bakarsanız (rahatsız edici olmayan yol), yeni çubuğun ilk işaretinde bir uyarı alırsınız.

Bu nedenle, piyasa faaliyetinin çok olduğu saatlerde, yeni çubuğun ilk işareti, bir önceki çubuğun kapanmasından hemen sonra (zamana bağlı olarak) gerçekleşebilir. Yavaş piyasa saatlerinde, yeni bir onay işaretinin gelmesi 20-30 saniye sürebilir ve MT 4, ilk işareti alana kadar size yeni çubuğu göstermez.

Umarım bu açıktır.

Keris

 

"Volatilite Durdurma Giriş Tekniği"ni kodlamak için yardıma ihtiyacınız var

Volatilite Stop, fiyat çubuğunun ortalama aralığını kullanarak oynaklığı hesaplar. Ortalama aralığı bir sabitle çarparak hesaplanır. Değer, kısa olduğunda en düşük kapanışa eklenir ve uzun olduğunda en yüksek kapanıştan çıkarılır:

Aralık = (Aralık x (N - 1) + Yüksek - Düşük / N)

Kısa = En Düşük Kapanış + Aralık x C

Uzun = En Yüksek Yakın - Aralık x C

Volatilite Stop'u güçlü trend olan piyasalarda kullanmak en iyisidir. Bu mükemmel bir giriş tekniğidir ve çoğu durumda geçerli trend çizgisi kırılmalarından veya kanal kırılmalarından üstün olacaktır. Ters durdurma, oynaklıkla ilgili olduğu için riski ölçmek için de hareket eder. Sabitler 2.5 ile 4.0 arasında tutulmalıdır.

Bu göstergeyle ilgili kişisel deneyimim yok, ancak "Patern Tanıma ile Fibonacci Oranları" kitabında okudum.

Biri bu göstergeyi kodlayabilirse çok mutlu olurum.

Dosyalar:
v.s..bmp  962 kb
 
 

Igorad çok teşekkür ederim Volty Kanal Durağı tam aradığım şeydi

 

Lütfen bu koda yardım edin ...

Bu forumda başka bir yerde bulduğum LSMA_in_color göstergesinin mekanizmasını öğrenmeye çalışıyorum. Aşağıdaki kod, wt[] içindeki değerlere göre gösterge çizgisi bölümlerinin rengini ayarlar:

//========== COLOR CODING ===========================================

ExtMapBuffer3[shift] = wt[shift]; //yellow

ExtMapBuffer2[shift] = wt[shift]; //blue

ExtMapBuffer1[shift] = wt[shift]; //red

if (wt[shift+1] > wt[shift])

{

ExtMapBuffer2[shift] = EMPTY_VALUE; //turn blue off

Print ("red ",wt[shift+1]," ",wt[shift]);

}

else if (wt[shift+1] < wt[shift])

{

ExtMapBuffer1[shift] = EMPTY_VALUE; //turn red off

Print ("blue ",wt[shift+1]," ",wt[shift]);

}

else

{

ExtMapBuffer1[shift]=EMPTY_VALUE; //turn red off;

ExtMapBuffer2[shift]=EMPTY_VALUE; //turn blue off;

Print ("yellow ",wt[shift+1]," ",wt[shift]);

}

Kırmızı, sarı ve mavi olmak üzere üç renk koşulunda gerçek değerlerin ne olduğunu görebilmek için Print() işlevlerini ekledim. Görünüşe göre sarı koşul yalnızca wt[shift] == wt[shift+1] olduğunda ortaya çıkıyor, ancak nedense bunu çalıştırdığımda günlük sarı koşula asla girmediğini gösteriyor. Yazılan her günlük girişi ya kırmızı ya da mavidir. Grafikte, açıkça sarı koşullar meydana geliyor - kırmızıdan maviye veya maviden kırmızıya her değiştiğinde, arada sarıya gidiyor... Neden günlüğe sarı koşulları yazdırmıyor?

Ayrıca, günlüğe bakarken wt[shift] ile wt[shift+1] aynı olduğu, ancak kırmızı bir koşul olarak yazdırıldığı durumlar görüyorum. Kırmızı koşul wt[shift+1] > wt[shift] gerektirdiğinde bu nasıl olabilir?

Herhangi bir yardım takdir edilecektir

 

Yessiree, herhangi bir yardım .....

 

Kodda gerçek bir çaylakım ama sarı her zaman açık ve üstüne kırmızı ya da mavi konuyor ya da jsut onu değiştiriyor gibi görünüyor, bu durumda bile sarı üzerine hiçbir şey çizilmez. bilmedikleri zaman bile hala kırmızı olduğu kadarıyla

 

Son [kapalı] işlemin kazanıp kazanmadığını kontrol etmek için kod..

mql4'te, kapatıldıktan sonra son işlemin kâr veya zararla sonuçlanıp sonuçlanmadığını kontrol etmek için bir yöntem var mı?

Bir dizi kullanarak HistoryTotal() ile OrderSelect() ve OrderProfit()'i deniyorum .. ancak OrderProfit 'açık siparişe' atıfta bulunuyor gibi görünüyor, bu yüzden bana istediğim sonuçları vermiyor.

Ortalama olarak, sistemimde art arda 5 galibiyet, 1 kaybetme var. Yapmak istediğim şey, kaybedilen bir işlemden sonra, bir sonraki işlem kazanma olasılığı olduğu için kullanılan lot sayısını artırmak istiyorum.

Bu nedenle, lot sayısını değiştirmeden önce son kapatılan işlemin neyle sonuçlandığını kontrol etmem gerekiyor.

Herhangi bir yardım takdir edilecektir ...

 
fxdk:
mql4'te, kapatıldıktan sonra son işlemin kâr veya zararla sonuçlanıp sonuçlanmadığını kontrol etmek için bir yöntem var mı?

Bir dizi kullanarak HistoryTotal() ile OrderSelect() ve OrderProfit()'i deniyorum .. ancak OrderProfit 'açık siparişe' atıfta bulunuyor gibi görünüyor, bu yüzden bana istediğim sonuçları vermiyor.

Ortalama olarak, sistemimde art arda 5 galibiyet, 1 kaybetme var. Yapmak istediğim şey, kaybedilen bir işlemden sonra, kazanmadan sonraki bir sonraki işlem olduğu için kullanılan lot sayısını artırmak istiyorum.

Bu nedenle, lot sayısını değiştirmeden önce son kapatılan işlemin neyle sonuçlandığını kontrol etmem gerekiyor.

Herhangi bir yardım takdir edilecektir ...

fxdk,

son kapatılan siparişin karını kontrol etmek için bu kodu kullanın:

int toplam = GeçmişToplam();

OrderSelect(toplam-1,SELECT_BY_POS, MODE_HISTORY );

Uyarı(SiparişProfit()); //Bu, kapatılan son sipariş karı veya zararıdır

 
codersguru:
fxdk,

son kapatılan siparişin karını kontrol etmek için bu kodu kullanın:

int toplam = GeçmişToplam();

OrderSelect(toplam-1,SELECT_BY_POS, MODE_HISTORY );

Uyarı(SiparişProfit()); //Bu, kapatılan son sipariş karı veya zararıdır

Bunun her zaman doğru olmayabileceğini düşünüyorum. Slawa ile bir tartışmam oldu ve TİCARET gibi TARİH'in her zaman tarihe göre sıralanmadığı ve terminal sekmesinde kullandığınız sıralama kolonuna bağlı olduğu görülüyor. Bu nedenle, tüm (!) Geçmişi taramak ve kapanış tarihlerini karşılaştırmak daha güvenlidir; sonra sonuncuyu hatırlayın, böylece bir dahaki sefere tüm diziyi taramanıza gerek kalmaz.

Neden: