Kodlama yardımı - sayfa 245

 
mladen:
makarna

Sadece ilk kısım (gerisi bunun sadece bir varyasyonu):

if ema(7) < ema(21) ve önceki ema(7) < önceki ema(21) ise o zaman ema(rsi(14),9) < rsi(14) satın alma sinyali ise

bunu şu şekilde de söyleyebilirsin:

if macd(7,12) < ve önceki macd(7,12) < 0 ise o zaman ema(rsi(14),9) < rsi(14) satın almak için sinyal verirse

Cevabınız için teşekkürler mt4 indikatörü bu kriterle kodlamak mümkün mü

Şimdiden teşekkürler

 
macerina:
Cevabınız için teşekkürler mt4 indikatörü bu kriterlerle kodlamak mümkün mü şimdiden teşekkürler

makarna

Bu basit bir macd + rsi sistemidir. Ben zaten böyle olduğuna inanıyorum. Böyle bir şey yoksa, bir gösterge yapmak kolaydır ve daha sonra yapılacaktır.

 
mladen:
Lütfen kodun burada tanımladığınız şeyi elde etmeye çalıştığınız bölümünü gönderin: https://www.mql5.com/en/forum/174385/page162 (3 siparişlerde kar elde etme ve 3 takip eden durdurma yönetimi değil) , ancak tam olarak tanımladığınız şeyi yapmaya çalışan kısım) ve sonra, belki birileri kodlamanız konusunda size yardımcı olabilir.

// açık satın alma siparişlerini say.

iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol());

//açık satış emirlerini say.

iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol());

if (iOpenOrders_Buy==3 || iOpenOrders_Sell==3)

{

if(TrailingStop>0 && TrailingStart > 0) TrailOrder (TrailingStart, TrailingStop);

}

if (iOpenOrders_Buy==1 || iOpenOrders_Sell==1)

{

if(TrailingStop_2>0 && TrailingStart_2 > 0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);

}

///////////////////////////////////////////// ////////////////////////////////////////

Bu, EA'nın ekli çift için Açık siparişlerin sayısını aradığı kısımdı.

3 emir bulursa, normal İzleyen Durdurma işlevini izleyecektir. Ve devam eden tek bir işlem olduğunu tespit ederse, İkinci Takip Durdurma işlevini takip edecektir.

Bu, tek bir çift için 'Tamam' çalışıyor, ancak bu EA'yı birden çok çizelgeye (Çiftler) eklediğimde, 'OrdersTotal()' işlevi aracılığıyla tüm açık siparişleri getirdiği için çalışmıyor.

Aklıma hemen bir sorun geliyor: 3 sipariş olduğunu ve sonra sadece 1 tane kaldığını nereden biliyorsun (o EA'da bunu bulmaya çalışan tek bir kod satırı yok)

//Bitiş - Açık satış pozisyonlarını kapatın------------------------------------------

double OpenPrice=Sor;

int sayı=3;

eğer (sayım==3)

{

BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Satın Al",MagicNumber, 0,Blue);

if (BuyOrder_1>0) //Siparişin açılıp açılmadığının kontrol edilmesi

{

sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " Satın alma siparişi başarıyla gönderildi. Ticket=" + BuyOrder_1;

say = say - 1;

///////////////////////////////////////////// ///////////

Böylece sayım azalıyor ve sayım=1 olana kadar emirler açılıyor. Yani başlangıçta 3 sipariş say=3 olarak açılıyor.

 
Oridroo:
// açık satın alma siparişlerini say.

iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol());

// açık satış emirlerini say.

iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol());

if (iOpenOrders_Buy==3 || iOpenOrders_Sell==3)

{

if(TrailingStop>0 && TrailingStart > 0) TrailOrder (TrailingStart, TrailingStop);

}

if (iOpenOrders_Buy==1 || iOpenOrders_Sell==1)

{

if(TrailingStop_2>0 && TrailingStart_2 > 0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);

}

///////////////////////////////////////////// ////////////////////////////////////////

Bu, EA'nın ekli çift için Açık siparişlerin sayısını aradığı kısımdı.

3 emir bulursa, normal İzleyen Durdurma işlevini izleyecektir. Ve devam eden tek bir işlem olduğunu tespit ederse, İkinci Takip Durdurma işlevini takip edecektir.

Bu, tek bir çift için 'Tamam' çalışıyor, ancak bu EA'yı birden çok çizelgeye (Çiftler) eklediğimde, 'OrdersTotal()' işlevi aracılığıyla tüm açık siparişleri getirdiği için çalışmıyor.

//Son - Açık satış pozisyonlarını kapatın------------------------------------------

double OpenPrice=Sor;

int sayı=3;

eğer (sayım==3)

{

BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Satın Al",MagicNumber, 0,Mavi);

if (BuyOrder_1>0) //Siparişin açılıp açılmadığının kontrol edilmesi

{

sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " Satın alma siparişi başarıyla gönderildi. Ticket=" + BuyOrder_1;

say = say - 1;

///////////////////////////////////////////// ///////////

Böylece sayım azalıyor ve sayım=1 olana kadar emirler açılıyor. Yani başlangıçta 3 sipariş say=3 olarak açılıyor.

Soru şuydu: Bir keresinde 3 açık emir olduğunu ve sonra sadece bir tane kaldığını nereden biliyor? Tek bir açık emir kalması hiçbir şey göstermiyor. Bir üçlünün parçası olan diğer 2 emir için kapatılan emirlerin listesini kontrol etmeniz gerekir ve brokerler yorum alanınızı değiştirebileceğinden, bazı emirlerin aynı üçlünün parçası olduğunu bilmenin hiçbir yolu yoktur ( bazı siparişlerin aynı sipariş grubuna ait olduğunu belirtmek için kullanılabilecek siparişler listesinde alan yok).

Üçüzlere ait bilet numaralarını kaydetmek için dosyaları kullanmayı deneyebilirsiniz, ancak aynı EA'yı başka bir terminalden kullanmaya çalışmanız durumunda korkunç hatalar alabilirsiniz. Metatrader'ı yeniden yüklediğinizde de aynı şey olabilir. Global değişkenleri kullanmak her zamankinden daha kötüdür (bunlar dosya kullanmakla hemen hemen aynı şeydir - ama daha da kötüsü), bu nedenle üçlü siparişleri doğru bir şekilde takip etmenin anlamlı bir yolu yoktur.

Peki 1 açılan emrin 3'ün son açılan emri mi yoksa yeni bir emir üçlüsünün ilk açılan emri mi olduğunu nasıl anlarsınız?

 
mladen:
Soru şuydu: Bir keresinde 3 açık emir olduğunu ve sonra sadece bir tane kaldığını nereden biliyor? Tek bir açık emir kalması hiçbir şey göstermiyor. Bir üçlünün parçası olan diğer 2 emir için kapatılan emirlerin listesini kontrol etmeniz gerekir ve brokerler yorum alanınızı değiştirebileceğinden, bazı emirlerin aynı üçlünün parçası olduğunu bilmenin hiçbir yolu yoktur ( bazı siparişlerin aynı sipariş grubuna ait olduğunu belirtmek için kullanılabilecek siparişler listesinde alan yok). Peki 1 açılan emrin 3'ün son açılan emri mi yoksa yeni bir emir üçlüsünün ilk açılan emri mi olduğunu nasıl anlarsınız?

Mladen,

pm atın, kodlayıcıya ihtiyacınız var

PM için BÜYÜK bir simge hayal edin!

 
mladen:
Peki 1 açılan emrin 3'ün son açılan emri mi yoksa yeni bir emir üçlüsünün ilk açılan emri mi olduğunu nasıl anlarsınız?

Bir şart var:

if (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)

Bu sayede, mevcut herhangi bir satın alma emri varsa, koşulların sağlanmasına rağmen yeni bir satın alma emri açmayacağından emin oluyorum. Sadece mevcut alım/satım emri olmadığında yeni bir emir açar.

Ve aynı anda 3 emir açtığı için(al/sat) ve ikisi zaten kapalıysa, soldaki kesinlikle aynı türdendir.

test ettim. Dolayısıyla bunda bir karışıklık yok.

 
Oridroo:
Bir şart var:

if (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)

Bu sayede, mevcut herhangi bir satın alma emri varsa, koşulların sağlanmasına rağmen yeni bir satın alma emri açmayacağından emin oluyorum. Sadece mevcut alım/satım emri olmadığında yeni bir emir açar.

Ve aynı anda 3 emir açtığı için(al/sat) ve ikisi zaten kapalıysa, soldaki kesinlikle aynı türdendir.

test ettim. Dolayısıyla bunda bir karışıklık yok.

Her şeyde çok fazla varsayım var. Birincisi, 3 emir açmaya çalıştığınızda aslında 3 emir açacaktır. Ya sadece 1 açılırsa? . Ve benzeri ...

Afedersiniz. Ama öyle görünüyor ki her zaman farklı şeylerden bahsediyoruz. Umarım birisi sana yardım edebilir, çünkü ben yapamam

mutlu ticaret

 
mladen:
Her şeyde çok fazla varsayım var. Birincisi, 3 emir açmaya çalıştığınızda aslında 3 emir açacaktır. Ya sadece 1 açılırsa? . Ve benzeri ...

Afedersiniz. Ama görünüşe göre her zaman farklı şeylerden bahsediyoruz. Umarım birisi sana yardım edebilir, çünkü ben yapamam

mutlu ticaret

Yapamıyorsan, sorun değil.

Bir süredir farklı brokerlerle test ediyorum ve şu ana kadar 3 sipariş açmak için 'Başarısız' olmadı.

Her neyse, en azından ben 'OrdersTotal()'ı çağırırken bir EA'nın farklı çiftleri ayırt etmesini sağlayan nokta/mantığın ne olduğunu söyleyebilirsiniz.

Herhangi bir küçük EA örneği İyi olacaktır.

 
macerina:
Cevabınız için teşekkürler mt4 indikatörü bu kriterlerle kodlamak mümkün mü şimdiden teşekkürler

makarna

Bu gönderideki göstergeyi kontrol edin: https://www.mql5.com/en/forum/173574/page432 . Aspen grafik kodu tarafından açıklananla neredeyse tamamen aynıdır.

 

Kod için teşekkürler Mladen ... Önceki mantıkta açıkladığınız gibi çift macd karşılaştırması ve 50 geçişi var mı?

Şimdiden teşekkürler