Kodlama yardımı - sayfa 36

 

STOPLOSS ile ilgili elle müdahale gerekiyor

mladen:
kemal44

Koddaki işlevlerin nasıl kullanılacağının açıklandığı bir konuya bir bağlantı: https://www.mql5.com/en/forum/173005

Orada çok iyi açıklanmış (ve bir gönderide açıklayabileceğimden daha fazla) bunların nasıl kullanılacağı

Sevgili Mladen,

Backtest yaparken, BreakEven-Stoplos çalışıyor gibi görünüyor, ancak gerçek hesap, gördüğüm kadarıyla düzgün çalışmadığında,

Bir uzman dosyasına göz atıp, sorunun ne olduğunu bana söyler misin?

şimdiden teşekkürler

Dosyalar:
xpexpert.txt  24 kb
 

...

kemal

Hangi hatanın yazıldığını terminalin uzmanlar sekmesinde kontrol edin.

Giriş mantığı eksik olduğu için kontrol edemiyorum (BuyCondition veya SellCondition'ı asla yazıldığı gibi true olarak ayarlamaz)

kemal44:
Sevgili Mladen,

Backtest yaparken, BreakEven-Stoplos çalışıyor gibi görünüyor, ancak gerçek hesap, gördüğüm kadarıyla düzgün çalışmadığında,

Bir uzman dosyasına göz atıp, sorunun ne olduğunu bana söyler misin?

şimdiden teşekkürler
 
mladen:
kemal

Hangi hatanın yazıldığını terminalin uzmanlar sekmesinde kontrol edin.

Giriş mantığı eksik olduğu için kontrol edemiyorum (BuyCondition veya SellCondition'ı asla yazıldığı gibi true olarak ayarlamaz)

işte al sat mantığı olan uzman,

sorun başabaş durma kaybıdır.

Başabaş ile yapmak istediğim şey, eğer kar giriş noktasından 5 pip yükselirse, portföyü korumak için stop-loss giriş noktasına ayarlanmalıdır,

şimdiden teşekkürler

Dosyalar:
xpexpert_1.txt  24 kb
 

...

Zararı durdurmanın minimum mesafesi sembolden sembole, komisyoncudan komisyoncuya bağlı olduğundan ve bir andan diğerine değişebildiğinden, kesintiyi eşit olarak ayarlamadan önce buna benzer bir kontrol ekleyin (bu genel bir örnektir emir bir alış emridir, satış emrine çok benzer bir şekilde yazabilirsiniz):

double minimalDistance = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

if (OrderType()=OP_BUY && (Bid-OrderOpenPrice())>=minimalDistance)

... your code for setting stop loss

Not: Bunların tümü (en son değişikliklere göre - yapı 419'dan itibaren) aracınızın bir ECN aracısı olmadığı durumlarda geçerlidir. Aracınız bir ECN aracısıysa, bu durumda MarketInfo(Symbol(),MODE_STOPLEVEL) en son yapılarda 0 döndürür ve stop loss minimum mesafesini (eğer varsa) ayarlamak için biraz deneme yapmanız gerekir.

kemal44:
işte al sat mantığı olan uzman,

sorun başabaş durma kaybıdır.

Başabaş ile yapmak istediğim şey, eğer kar giriş noktasından 5 pip yükselirse, portföyü korumak için stop-loss giriş noktasına ayarlanmalıdır,

şimdiden teşekkürler
 
mladen:
Zararı durdurmanın minimum mesafesi sembolden sembole, komisyoncudan komisyoncuya bağlı olduğundan ve bir andan diğerine değişebildiğinden, kesintiyi eşit olarak ayarlamadan önce buna benzer bir kontrol ekleyin (bu genel bir örnektir emir bir alış emridir, satış emrine çok benzer şekilde yazabilirsiniz):
double minimalDistance = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

if (OrderType()=OP_BUY && (Bid-OrderOpenPrice())>=minimalDistance)

... your code for setting stop loss

Not: Bunların tümü (en son değişikliklere göre - yapı 419'dan itibaren) aracınızın bir ECN aracısı olmadığı durumlarda geçerlidir. Aracınız bir ECN aracısıysa, bu durumda MarketInfo(Symbol(),MODE_STOPLEVEL) en son yapılarda 0 döndürür ve stop loss minimum mesafesini (eğer varsa) ayarlamak için biraz deneme yapmanız gerekir.

teşekkür ederim ;

Mesafe güzel fikir

ECN Broker kuralları hakkında hiçbir fikrim yok, brokerim yerel bir şirket

 

...

kemal44

Brokeriniz için - aşağıdakileri deneyin: Kontrol etmenin basit bir yolu, manuel olarak bir emir açmayı denemektir, ancak bunu yaptığınızda, zararı durdur ve/veya kar almayı deneyin. Açık sipariş iletişim kutusunda bu alanlar devre dışıysa (aşağıdaki resimdeki gibi) veya 0 dışında ayarladığınız herhangi bir değer hata alıyorsa, komisyoncunuz "ECN / STP" tipi bir komisyoncudur.

kemal44:
teşekkür ederim ;

Mesafe güzel fikir

ECN Broker kuralları hakkında hiçbir fikrim yok, brokerim yerel bir şirket
Dosyalar:
order_open.gif  22 kb
 
mladen:
kemal44

Brokeriniz için - aşağıdakileri deneyin: Kontrol etmenin basit bir yolu, manuel olarak bir emir açmaya çalışmaktır, ancak bunu yaptığınızda, zararı durdur ve / veya kar almayı deneyin. Açık sipariş iletişim kutusunda bu alanlar devre dışıysa (aşağıdaki resimdeki gibi) veya 0 dışında ayarladığınız herhangi bir değer hata alıyorsa, komisyoncunuz "ECN / STP" tipi bir komisyoncudur.

Alım satım pencerem yukarıdaki resimle tamamen aynı. Borkerimin "ECN / STP" tipinde olduğunu anladım.

teşekkür ederim

bu arada MT4'ün sağladığı kanalları(StdDev vb.) indikatör veya adet bazlı kod ile grafiğimize otomatik olarak alabilir miyiz, nasıl kodlayacağımı bilmiyorum, bunun için örnek kod almama yardım eder misiniz?

şimdiden teşekkürler

 

...

kemal44

"Kanallar" ile ilgili soruyu anladığımdan emin değilim, ancak deneyeyim:

Sağladıkları işlevleri kullanarak herhangi bir metatrader yerleşik göstergesini kullanabilirsiniz. Örneğin standart sapma için sözdizimi şöyledir:

[/TR]

[TR]

[TD="genişlik: %100"]MA kayması.

[TR]

[TD] ma_yöntemi

[TD] - [TD="genişlik: %100"]MA yöntemi. Hareketli Ortalama yöntemi numaralandırma değerinden herhangi biri olabilir.

[TR]

[TD] uygulanan_fiyat [TD] - [TD="width: 100%"]Uygulanan fiyat. Uygulanan fiyat numaralandırma değerlerinden herhangi biri olabilir.

[TR]

[TD] kayması [TD] - [TD="width: 100%"]Gösterge arabelleğinden alınan değerin dizini (geçerli çubuğa göre, verilen dönem miktarı kadar önce kaydırma).
çift iStdDev(

[/TD]

string sembolü, int zaman çerçevesi, int ma_period, int ma_shift, int ma_method, int uygulanan_fiyat, int shift)[/TD]

[/TR]

[/TABLO]

Standart Sapma göstergesini hesaplar ve değerini döndürür. parametreler:

[TABLE="sınıf: docparams"]

sembol [/TD] - [/TD] Göstergeyi hesaplamak için verilerinin kullanılması gereken sembol. NULL, geçerli sembol anlamına gelir.[/TD]

[/TR]

zaman aralığı [/TD] - [/TD] Zaman aralığı. Zaman Çerçevesi numaralandırma değerlerinden herhangi biri olabilir. 0, mevcut grafik zaman çerçevesi anlamına gelir.[/TD]

[/TR]

ma_dönem [/TD] - [/TD] MA dönemi. ma_shift -

Örneklem:

double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);

__________________________________________

Benzeri diğer yerleşik göstergeler için de geçerlidir (bunlar:

Böylece bunlardan herhangi birini başka bir göstergeden, komut dosyasından veya EA'dan bir işlev çağrısı olarak kullanabilirsiniz.

Yerleşik gösterge değerlerinden bazılarını grafik üzerinde görüntülemeyi amaçladıysanız, o zaman bir çizim arabelleği (normal göstergelerde olduğu gibi) kullanmanız gerekir, yukarıdaki işlevlerden bazılarının değerlerini çizim arabelleğine atayın ve bu grafikte görüntülenecektir. EA'ların çizim arabellekleri yoktur, bu nedenle bir EA'dan çizim arabelleklerini kullanarak bunu yapamazsınız (nesneleri kullanmanız gerekir, ancak bu tamamen farklı bir hikaye)

kemal44:
Alım satım pencerem yukarıdaki resimle tamamen aynı. Borkerimin "ECN / STP" tipinde olduğunu anladım.

teşekkür ederim

bu arada MT4'ün sağladığı kanalları(StdDev vb.) indikatör veya adet bazlı kod ile grafiğimize otomatik olarak alabilir miyiz, nasıl kodlayacağımı bilmiyorum, bunun için örnek kod almama yardım eder misiniz?

şimdiden teşekkürler
 
mladen:
kemal44

"Kanallar" ile ilgili soruyu anladığımdan emin değilim, ancak deneyeyim:

Sağladıkları işlevleri kullanarak herhangi bir metatrader yerleşik göstergesini kullanabilirsiniz. Örneğin standart sapma için sözdizimi şöyledir:

[/TR]

[TR]

[TD="genişlik: %100"]MA kayması.

[TR]

[TD] ma_yöntemi [TD] - [TD="genişlik: %100"]MA yöntemi. Hareketli Ortalama yöntemi numaralandırma değerinden herhangi biri olabilir.

[TR]

[TD] uygulanan_fiyat [TD] - [TD="width: 100%"]Uygulanan fiyat. Uygulanan fiyat numaralandırma değerlerinden herhangi biri olabilir.

[TR]

[TD] kayması [TD] - [TD="width: 100%"]Gösterge arabelleğinden alınan değerin dizini (geçerli çubuğa göre, verilen dönem miktarı kadar önce kaydırma).
çift iStdDev([/TD] string sembolü, int zaman çerçevesi, int ma_period, int ma_shift, int ma_method, int uygulanan_fiyat, int shift)[/TD]

[/TR]

[/TABLO]

Standart Sapma göstergesini hesaplar ve değerini döndürür. parametreler:

[TABLE="sınıf: docparams"]

sembol [/TD] -[/TD] Göstergeyi hesaplamak için verilerinin kullanılması gereken sembol. NULL, geçerli sembol anlamına gelir.[/TD]

[/TR]

zaman aralığı [/TD] -[/TD] Zaman aralığı. Zaman Çerçevesi numaralandırma değerlerinden herhangi biri olabilir. 0, mevcut grafik zaman çerçevesi anlamına gelir.[/TD]

[/TR]

ma_dönem [/TD] -[/TD] MA dönemi. ma_shift -

Örneklem:

double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);

__________________________________________

Benzeri diğer yerleşik göstergeler için de geçerlidir (bunlar:

Böylece bunlardan herhangi birini başka bir göstergeden, komut dosyasından veya EA'dan bir işlev çağrısı olarak kullanabilirsiniz.

Yerleşik gösterge değerlerinden bazılarını grafik üzerinde görüntülemeyi amaçladıysanız, o zaman bir çizim arabelleği (normal göstergelerde olduğu gibi) kullanmanız gerekir. EA'ların çizim arabellekleri yoktur, bu nedenle bir EA'dan çizim arabelleklerini kullanarak bunu yapamazsınız (nesneleri kullanmanız gerekir, ancak bu tamamen farklı bir hikaye)

Sdv Kanalı ile kastettiğim aşağıdaki gibi bir kanal,

bu arada, hızlı yanıt için teşekkür ederim.

Dosyalar:
xxx.gif  13 kb
 

Parabolik SAR ile EA

Parabolik SAR ile ticaret yapmak için bir fikriniz olsun. Parabolik SAR ile EA yapmak istiyorum ama şu ana kadar iyi sonuç alamadım. Yani Parabolik SAR ile fikriniz varsa daha iyi hale getireceğim. Son yaptığım bu kârı sağlayabilir. ama Eşitlik asla denge ile aynı değildir.

Dosyalar: