Sormak! - sayfa 61

 

Kod Sorusu

Lütfen gönderiyi dikkate almayın. Bu ayar yapmam gerekeni yaptı. Bize yardım etmeye başladığınız için teşekkürler.

Bir EA'yı birkaç yöntemle çalışacak şekilde değiştirdim. Biraz araştırma yaptım ama sipariş açarken yorum alanına EA adını nasıl ekleyeceğimi çözemedim. Birisi bana doğru yönde işaret edebilir.

Bir test sırasında birden fazla EA çalıştırırken siparişlerin daha iyi organize edilmesi için değiştirdiğim herhangi bir EA'ya entegre edebileceğim basit bir dize komutu olduğunu umuyorum.

Zaman ayırdığınız ve anlayışınız için teşekkürler.

İşte EA yorumunu girmek için değiştirmem gereken değiştirilmemiş bölümlerden biri.

if(ObjectFind(BuyStop_TrendName) == 0)

{

SetObject("Active" + BuyStop_TrendName,

ObjectGet(BuyStop_TrendName, OBJPROP_TIME1),

ObjectGet(BuyStop_TrendName, OBJPROP_PRICE1) + BuyStop_StepActive*Point,

ObjectGet(BuyStop_TrendName, OBJPROP_TIME2),

ObjectGet(BuyStop_TrendName, OBJPROP_PRICE2) + BuyStop_StepActive*Point,

ObjectGet(BuyStop_TrendName, OBJPROP_COLOR));

SetObject("Prepare" + BuyStop_TrendName,

ObjectGet(BuyStop_TrendName, OBJPROP_TIME1),

ObjectGet(BuyStop_TrendName, OBJPROP_PRICE1) - BuyStop_StepPrepare*Point,

ObjectGet(BuyStop_TrendName, OBJPROP_TIME2),

ObjectGet(BuyStop_TrendName, OBJPROP_PRICE2) - BuyStop_StepPrepare*Point,

ObjectGet(BuyStop_TrendName, OBJPROP_COLOR));

vA = NormalizeDouble(ObjectGetValueByShift("Active"+BuyStop_TrendName,0),Digits);

vM = NormalizeDouble(ObjectGetValueByShift(BuyStop_TrendName,0),Digits);

vP = NormalizeDouble(ObjectGetValueByShift("Prepare"+BuyStop_TrendName,0),Digits);

sl = vA - BuyStop_StopLoss*Point;

tp = vA + BuyStop_TakeProfit*Point;

if(Ask = vP && OrderFind(MagicBuyStop) == false)

if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vA, 3, sl, tp,"", MagicBuyStop, 0, Green) < 0)

Print("Err (", GetLastError(), ") Open BuyStop Price= ", vA, " SL= ", sl," TP= ", tp);

if(Ask = vP && OrderFind(MagicBuyStop) == true &&

glbOrderType == OP_BUYSTOP)

{

OrderSelect(glbOrderTicket, SELECT_BY_TICKET, MODE_TRADES);

if(vA != OrderOpenPrice())

if(OrderModify(glbOrderTicket, vA, sl, tp, 0, Green) == false)

Print("Err (", GetLastError(), ") Modify BuyStop Price= ", vA,

" SL= ", sl, " TP= ", tp);

}

if(Ask < vP && OrderFind(MagicBuyStop) == true &&

glbOrderType == OP_BUYSTOP && AutoClose==true)

{

OrderDelete(glbOrderTicket);

}

}

[/code]

I am not sure of the logic but can I just input the CommentName in the following location? I have not tested this but it compiles fine.

[code]

if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vA, 3, sl, tp," CommentName ", MagicBuyStop, 0, Green) < 0)

Print("Err (", GetLastError(), ") Open BuyStop Price= ", vA, " SL= ", sl," TP= ", tp);

Dosyalar:
 

Bizim için burada olduğunuz için teşekkürler Coderguru!

Uyarılar hakkında bir sorum var.

Bu koddaki uyarı türünü değiştirmek istiyorum, böylece seçtiğim bir wav dosyasını oynatacak ve açılır pencere satın al sat şey olmayacak. Fraktal göründüğünde sadece wav dosyasını oynatın.

Kod nasıl olmalıdır. sFractals uyarı göstergesini ekledim.

if(ÖncekiSinyal <= 0 )

{

if(ExtDownFractalsBuffer[SIGNAL_BAR] > 0)

{

ÖncekiSinyal = 1;

Alert("sFractals (", Symbol(), ", ", Period(), ") - SATIN AL!!!");

}

}

if(ÖncekiSinyal >= 0)

{

if(ExtUpFractalsBuffer[SIGNAL_BAR] > 0)

{

ÖncekiSinyal = -1;

Alert("sFractals (", Symbol(), ", ", Period(), ") - SAT!!!");

}

}

Dosyalar:
sfractals.mq4  8 kb
 
proverbs:
Mantıktan emin değilim ama aşağıdaki konuma CommentName'i girebilir miyim? Bunu test etmedim ama iyi derleniyor.

if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vA, 3, sl, tp," CommentName ", MagicBuyStop, 0, Green) < 0)

Print("Err (", GetLastError(), ") Open BuyStop Price= ", vA, " SL= ", sl," TP= ", tp);

Bu iyi çalışacak. Bu yere bir dize değişkeni de koyabilirsiniz.

 
Drivefast:
Bizim için burada olduğunuz için teşekkürler Coderguru!

Uyarılar hakkında bir sorum var.

Bu koddaki uyarı türünü değiştirmek istiyorum, böylece seçtiğim bir wav dosyasını oynatacak ve açılır pencere satın al sat şey olmayacak. Fraktal göründüğünde sadece wav dosyasını oynatın.

Kod nasıl olmalıdır. sFractals uyarı göstergesini ekledim.

if(ÖncekiSinyal <= 0 )

{

if(ExtDownFractalsBuffer[SIGNAL_BAR] > 0)

{

ÖncekiSinyal = 1;

Alert("sFractals (", Symbol(), ", ", Period(), ") - SATIN AL!!!");

}

}

if(ÖncekiSinyal >= 0)

{

if(ExtUpFractalsBuffer[SIGNAL_BAR] > 0)

{

ÖncekiSinyal = -1;

Alert("sFractals (", Symbol(), ", ", Period(), ") - SAT!!!");

}

}

Sanırım CodersGuru öldü falan. Bir süredir ortalarda yok.

Her neyse... şu ifadeyi ekleyin:

PlaySound("alert.wav");

.... burada "alert.wav", oynatmak istediğiniz dosyanın adıdır.

 
ryanklefas:
Sanırım CodersGuru öldü falan. Bir süredir ortalarda yok.

Her neyse... şu ifadeyi ekleyin:

PlaySound("alert.wav");

.... burada "alert.wav", oynatmak istediğiniz dosyanın adıdır.

Yazıma cevap verdiğiniz için teşekkür ederim.

PlaySound'u nereye koyacağımdan emin değilim ("alert.wav"); kodda.

Bu kısmı silebilir miyim? Alert("sFractals (", Symbol(), ", ", Period(), ") - SATIN AL!!!");

Yoksa böyle bir şey mi olması gerekiyor?

ÖncekiSinyal = 1;

PlaySound("alert.wav");

Alert("sFractals (", Symbol(), ", ", Period(), ") - SATIN AL!!!");

 

Evet. Sadece tüm uyarıyı sesle değiştirin.

if(PrevSignal <= 0 )

{

if(ExtDownFractalsBuffer[SIGNAL_BAR] > 0)

{

PrevSignal = 1;

PlaySound("alert.wav");

}

}

if(PrevSignal >= 0)

{

if(ExtUpFractalsBuffer[SIGNAL_BAR] > 0)

{

PrevSignal = -1;

PlaySound("alert.wav");

}

}
 

Tüm yardımlarınız için teşekkür ederim ryanklefas, şimdi istediğim gibi çalışıyor.

 

sıralama hakkında soru

2 boyutlu bir dizide saklanan 2 boyutlu bir veri tablom var. Bu veri tablosundan herhangi bir sütuna göre sıralama gibi bazı işlemler yapmak istiyorum.

Talimattaki ArraySort() işlevi , dizileri 1. boyutunda sıralayabilir. Bunun benim için nasıl işe yaradığını anlamıyorum.

MetaTrader'da veri tablosu sıralaması hakkında herhangi bir öneriniz var mı?

 

Uzman Danışman Arasındaki İletişim

Merhaba,

uzman danışman arasında iletişim kurmanın bir yolu olup olmadığını bilmek istiyorum, diyelim ki ana strateji olarak EA A var

ve yedekleme stratejisi olarak EA B'yi yedekleyin

2 farklı çift üzerine yerleştiriyorum ..

EA A aşağı konumdaysa tetiklemek istiyorum, EA B'yi başlatın...

EA A ve EA B için kümülatif kâr bir hedef noktaya ulaştığında..

EA A ve EA B'deki tüm pozisyonları kapatın

bunu yapmak mümkün mü?

 
veematics:
Merhaba,

uzman danışman arasında iletişim kurmanın bir yolu olup olmadığını bilmek istiyorum, diyelim ki ana strateji olarak EA A var

ve yedekleme stratejisi olarak EA B'yi yedekleyin

2 farklı çift üzerine yerleştiriyorum ..

EA A aşağı konumdaysa tetiklemek istiyorum, EA B'yi başlatın...

EA A ve EA B için kümülatif kâr bir hedef noktasına ulaştığında..

EA A ve EA B'deki tüm pozisyonları kapatın

bunu yapmak mümkün mü?

Bence global değişkenler aradığınız şey olurdu. Bunları MetaEditor referans bölümünde inceleyebilirsiniz. Mevcut global değişkenlerinizi görüntülemek için MT4 terminalinde F3'e basın.

Neden: