Sormak! - sayfa 136

 

siparişi askıya al

Merhaba millet,

MQL4'te programlama konusunda gerçek bir acemiyim ama her gün öğreniyorum. Şu anda aşağıdakileri deniyorum:

EA'mın ana döngüsünde, belirli koşullar sağlandığında bir sipariş açılır. Bu sipariş, OrderSend işlevini kullanarak belirli bir giriş, stoploss ve kâr alma ile yapılır.

Aynı anda yalnızca bir siparişe izin verilir:

toplam = SiparişlerToplam();

if(toplam < 1)

{ vesaire vesaire

İnşa etmek istediğim şey, emrin zarar durdurma veya kar alma isabetine ulaşıldığında, EA'nın mevcut saatlik çubuk (stoploss veya kar alma içindeki çubuk isabet) bitene kadar yeni emirler alarak beklemesidir.

Şu andaki sorun şu ki, stoploss veya takeprofit'e ulaşılır vurulmaz, ana döngüde hemen başka bir emir alınır.

Lütfen bana yardım eder misiniz?

FXX

 

EA'yı birleştirin yardıma ihtiyacınız var

Herkese selam,

2 fark EA'yı 1 EA'da birleştirmeyi bilen var mı? Lütfen bana bunun nasıl yapıldığını adım adım gösterin?

Yardımın için şimdiden teşekkürler !

 

EA'nın Mantığına Bağlıdır

Her EA'nın farklı mantığı vardır, bu nedenle iki EA'yı birleştirme yöntemi onların mantığına bağlıdır..

Peki birleştirmek istediğiniz adet nerede?

Bill FX:
Herkese selam,

2 fark EA'yı 1 EA'da birleştirmeyi bilen var mı? Lütfen bana bunun nasıl yapıldığını adım adım gösterin?

Yardımın için şimdiden teşekkürler !
 

Değerler Nasıl Sıralanır? Yardım Gerekiyor

Herhangi biri bana rank fonksiyonunu nasıl oluşturacağıma yardım edebilir.

örneğin, bunlar gibi bir çift değerim var:

a=3.0; b=4.0; c=5.0; d=2.0; e=1.0; f=6.0; g=0.0;

yüksekten düşüğe değer (6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0)

veya (f,c,b,a,d,e,g) değeri

yani sıralama böyle olmalı

sıra numarası: (th)

f=1; c=2; b=3; a=4; d=5; e=6; g=7;

İhtiyacım olan, değeri girersem sıralamayı döndürmekten daha fazla bir işlevdir.

int rank (çift değer)

{

tüm değerleri işlemek;

dönüş (tüm değerlerden bir değerin sırası)

}

Böyle bir fonksiyon yaparsak kolay olduğunu biliyorum.

örneğin "a" değeri

int rank (çift değer)

{

if(a>b && a>c && a>d && a>e && a>f && a>g)

dönüş (1);

.

.

.

if(a<b && a<c && a<d && a<e && a<f && a<g)

dönüş(7);

}

Sorun, değer varyasyonları 2 olduğunda kombinasyon sadece birkaç, ancak varyasyonlar örneğin 5,7 veya 10 vb. arttığında, sıralama yapmak için kombinasyon çok çok fazla olacaktır..

Umarım birileri bu tür bir sorun için bana yardımcı olabilir ..

Şimdiden teşekkürler, zayıf ingilizcem için özür dilerim, ama öğreniyorum..

pi..

 

Bir dizi kullanın ve ArraySort() işlevine bakın.

İyi şanlar

Lüks

 

Stoch OBOS'u

Bu indi stoch'u çok seviyorum, ancak bunu değiştirmek için yardıma ihtiyacım var, çünkü stoch, satılan alan üzerine dokunduğunda uyarıya ihtiyacım var. Ve uyarı verdiğinde, hangi para birimini de gösterebilir.

Şimdiden teşekkür ederim.

Dosyalar:
 
luxinterior:
Bir dizi kullanın ve ArraySort() işlevine bakın.

İyi şanlar

Lüks

Bunu denedim ama yine de kafam karıştı,

Bana o şeyi nasıl yapacağımı öğretebilecek veya gösterebilecek birine ihtiyacım var..

Belki Lux Yapabilirsin?

Şimdiden teşekkürler

 
primajaya:
Her EA'nın farklı mantığı vardır, bu nedenle iki ea'yı birleştirme yöntemi onların mantığına bağlıdır. Peki, EA'ları nerede birleştirmek istersiniz?

Merhaba primajaya,

Geri bildiriminiz için teşekkürler. Yani 1. EA açık işlemler ve 2. EA yakın işlemler, eğer 1. EA açık işlemlerse ve bir miktar kâra sahipse ve 2. EA kapanış işlemini XXX kârda istiyorum, nasıl yapmalıyım? 2 sohbete eklersem çalışırlar, ancak yalnızca 1 EA'yı açmam gerektiğinden 2'si 1 arada birleştirmek istiyorum.

Yardımın için teşekkürler!

 
Bill FX:
Merhaba primajaya,

Geri bildiriminiz için teşekkürler. Yani 1. EA açık işlemler ve 2. EA yakın işlemler, eğer 1. EA açık işlemlerse ve bir miktar kâra sahipse ve 2. EA kapanış işlemini XXX kârda istiyorum, nasıl yapmalıyım? 2 sohbete eklersem çalışırlar, ancak yalnızca 1 EA'yı açmam gerektiğinden 2'sini 1'de birleştirmek istiyorum.

Yardımın için teşekkürler!

İşlemleri açmak için 1. ve 2. EA mantığını hala bilmiyorum ...

Ama belki bu size yardımcı olabilir..

İki adeti tek bir EA'da birleştirmeye çalışın..

Bu nedenle, EA'nın ticaret açmak için iki sinyali olmalıdır:

1. EA'dan 1. sinyal ve 2. EA'dan 2. sinyal..

OrderMagicNumber()'ı iki sinyalle yapılan her açık işlem için kimlik olarak kullanabilirsiniz...

örneğin:

1. sinyal ile açık işlemler varsa, o zaman -- sihirli sayı 1111'dir

2. sinyale göre işlemler açılırsa -- sihirli sayı 2222'dir

Dolayısıyla, işlemi ikinci sinyalden kapatmak istiyorsak, kapatmak için OrderMagicNumber() öğesini kimlik olarak kullanabiliriz:

Umarım yardımcı olur...

pj

 

10 puan3

LÜTFEN, PROGRAMCILAR!

10points3 EA'ya ihtiyacımız var, üçüncü ticaret açıldığında, ilki kapandığında, deniyorum ama hala tüm pozisyonları kapatıyor.

aslında elimizde:

if (ÖncekiAçıkSiparişler>AçıkSiparişler)

{

for(cnt=OrdersTotal();cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

mod=SiparişTürü();

if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magic)

{

if (mode==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); }

if (mode==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red); }

dönüş(0);

}

}

}

Bunu yapmayı düşünüyordum:

1. ikinci işlem açıldığında ilk işlem için sihirli sayıyı değiştirin, örneğin sihirli sayı+1

2. üçüncü ticaret açıldığında, sihirli sayı+1 atanmış olarak ilkini kapatın.

haklı mıyım?

veya daha sonra kapatmak için açılan ilk ticareti başka hangi yolla belirleyebilirim?

Bana rehberlik edebilir veya değişiklikleri yapabilirseniz, daha iyi çünkü ben bir programcı değilim, sadece öğreniyorum.

Bu değişiklik Kutsal Kase'nin başlangıcı olacaktır !!!

Dosyalar:
10p3v0.03_1.mq4  12 kb