Nasıl kodlanır? - sayfa 41

 

Daha fazla EA

Bir seferde sadece 5 adet yükleyebilir.

Dosyalar:
kehedge.mq4  12 kb
 

"Son işlem kazanıyorsa" nasıl yazılır?

Bir EA'da "Son işlem kazanıyorsa" nasıl yazılır (bu çift için) o zaman ...

Yardım için teşekkürler.

Jo

 

MarketInfo() hakkında

herkese merhaba!

//

double A = MarketInfo("EURUSD",MODE_BID);

doube B = MarketInfo("USDJPY",MODE_BID);

double C = MarketInfo("EURJPY",MODE_BID);

içinde()

{

A = MarketInfo("EURUSD",MODE_BID);

B = MarketInfo("USDJPY",MODE_BID);

C = MarketInfo("EURJPY",MODE_BID);

}

int başlangıç()

{

...

}

//

bu kodlar neden çalışmıyor? uyduğunda, bu çok fazla hataya gelir:

'MarketInfo' - başlatma bekleniyor

'A' - değişken tanımlanmadı ...

.....ve benzeri

 

Bu benim için çalıştı

Jovager:
Bir EA'da "Son işlem kazanıyorsa" nasıl yazılır (bu çift için) o zaman ...

Yardım için teşekkürler.

Jo

çift LotOptimize Edilmiş()

{

double lot = InitialLots;//varsayılan lotlar 0.1 - lotlar kodun diğer kısmı tarafından ayarlanmazsa hata olmaz

// int toplam = OrdersHistoryTotal();

for(int i=0;i<OrdersHistoryTotal();i++) // kapatılan / iptal edilen tüm işlemleri tara

{

OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);

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

{

if(SiparişKar()<0)

{

lot = NormalizeDouble(OrderLots() * LotsFactor,2);

}

başka

{

lotlar=İlkLotlar;

}

}

}

dönüş(lot);

}

Bunu, son kapatılan işlemin kazanan olup olmadığını kontrol etmek için kullandım. Değilse, lotları martingalledim. Umarım yardımcı olur.

 
Sendra:
Herkese selam

Bir EA oluşturmaya çalıştım ve aşağıdaki hata mesajını aldım:

'\end_of_program' - bitiş dirseği '}' bekleniyor C:\...\My_First_EA.mq4(96,1)

Çift tıkladım, satıra geldim, ardından açılış-bitiş parantezleriyle kontrol ettim ve hala nerede hata yaptığımı bilmiyorum.

Bu, aynı göstergeye dayalı olarak aynı hata mesajıyla denediğim ikinci EA.

Teşekkür ederim.

Sendra, programı ek olarak e-posta adresime gönder, ona bakıp düzeltmeye çalışacağım. Normalde sorun, bir ifadeden sonra bir parantezin eksik olmasıdır. Ne yazık ki, bu düşük seviyeli bir dildir ve temel bir dil olduğu için birçok kez hatanın tam olarak nerede olduğunu söyleyemez, bu nedenle varsayılan olarak size gösterdiği hatayı alır. Bu tür hataların giderilmesinde yalnızca kodlama deneyimi yardımcı olacaktır.

Dave

<<<

ddiebold7@aol.com

 

Ralph, biraz Günlük Kapatma mantığıyla YARDIM

Merhaba Ralph.

Belki, biraz yol göstermenin sakıncası yoksa. Bunu anlamak benim için biraz zor oldu!! EA'nın açık bir ticareti kapatıp kapatmayacağını belirlemek için bakması gereken bazı koşulları tanımlamak istiyorum. Örnek olarak bir satın alma emrini kullanalım ( Sat emrinin tersi mantık olacağını biliyorum). Yani, Pazartesi günü açılan bir Satın Alma emrim var. EA'nın önümüzdeki X # gün boyunca Günlük Kapanışa bakmasını istiyorum. Sonraki X gün sayısının her birindeki Günlük Kapanış (örneğin 5 gün diyelim) işlemin Emir Açma fiyatından düşükse, EA'nın işlemi kapatmak için bir Emir Kapatma gerçekleştirmesini istiyorum. Ayrıca, EA'nın bakmasını isteyebileceğim bu koşulun başka bir olası parçasının, sonraki X gün sayısının her birindeki Günlük kapanışın önceki günlerin kapanışından daha düşük olup olmadığı olduğunu düşünüyordum. Ayrıca My EA, bir saatlik zaman diliminde çalışır.

Umarım başarmak istediğim şeyi anlamanız için yeterince açık bir şekilde açıkladım.

Yardımlarınız için şimdiden teşekkür ederiz.

 

Kodlama Yardımı Lütfen

Bir EA'nın kodlamasını istemiyorum, sadece bir sorunla ilgili küçük bir yardım.

Kodlamak istediğim şey şudur, açık bir uzun emrim varsa, o belirli uzun emrin açılmasından bu yana emrin gördüğü en yüksek kote fiyatını aramak istiyorum. Açıkçası, sipariş ilk açıldığında, açık fiyat iade edilecektir. Emir 20 pip artarsa, OrderOpenPrice() + 20 pip'in fiyatı iade edilir. Fiyat 10 pip düşerse, OrderOpenPrice() + 20 fiyatı yine de döndürülen değer olacaktır. Bunun belirli bir çubuk içinde OrderOpenPrice() + Yüksek[0] kullanılarak yapılabileceğini biliyorum, ancak yeni bir çubuk oluşturulduğunda Yüksek[0] Yüksek[1] olur. Belirli bir kısa siparişin gördüğü en düşük değeri döndürmek için aynı mantığı tersten de kullanacağım. Sipariş kapandığında, döndürülen değerler sıfıra ayarlanacaktır.

Bunu anlamakta zorlanıyorum, biri yardım edebilir mi?

Teşekkür ederim!

 

Geçerli çubuğun en yüksek alıntılanan değerini bir değişkene kaydedin. Her başka teklif aldığınızda, bunu değişkenin değeriyle karşılaştırın. Yeni değer daha yüksekse, onu değişkene kaydedin. Yeni değer daha düşükse, değişkeni aynı tutun.

if(değişken < yeni alıntı)

değişken = yeni alıntı;

Umarım yardımcı olur!

 
jimven:
Geçerli çubuğun en yüksek alıntılanan değerini bir değişkene kaydedin. Her başka teklif aldığınızda, bunu değişkenin değeriyle karşılaştırın. Yeni değer daha yüksekse, onu değişkene kaydedin. Yeni değer daha düşükse, değişkeni aynı tutun.

if(değişken < yeni alıntı)

değişken = yeni alıntı;

Umarım yardımcı olur!

Yardımın için teşekkürler, yine de bir sorum var. Mevcut çubuk artık siparişin açıldığı çubuk değilse ne olur? Barda sipariş 5 bar önce açılırsa ne olur? Şimdi, siparişin açılmasından bu yana en yüksek teklif edilen fiyat olan 5 barlık en yüksek teklif değerini istiyorum. Bu hala işe yarayacak mı?

teşekkürler