Nasıl kodlanır? - sayfa 170

 
Roger09:
Bakmak

double NormalizeDouble(çift değer, int basamak)

Rakam = 2 koyarsanız, ne istediğinizi görebilirsiniz.

Merhaba,

Sanırım çok net değildim. Örneğin:

- Güncel fiyat 1.3756 ise kod 56 döndürmelidir.

- Güncel fiyat 99.22 ise kod 22 döndürmelidir.

- Mevcut fiyat 1.4499 ise, kod 99 dönmelidir.

Temel olarak, alıntının 4 ondalık veya 2 ondalık basamak olmasına bakılmaksızın son iki basamağın değerini döndürmeye çalışıyorum.

NomalizeDouble, fiyatı yalnızca belirtilen Basamak yerleştirmesine kadar yuvarlar .

Herhangi bir fikri olan var mı?

 
musical:
Merhaba,

Sanırım çok net değildim. Örneğin:

- Güncel fiyat 1.3756 ise kod 56 döndürmelidir.

- Güncel fiyat 99.22 ise kod 22 döndürmelidir.

- Mevcut fiyat 1.4499 ise, kod 99 dönmelidir.

Temel olarak, alıntının 4 ondalık veya 2 ondalık basamak olmasına bakılmaksızın son iki basamağın değerini döndürmeye çalışıyorum.

NomalizeDouble, fiyatı yalnızca belirtilen Basamak yerleştirmesine kadar yuvarlar.

Herhangi bir fikri olan var mı?

ОК

double lasttwonumbers=(Bid-MathFloor(Teklif/(Puan*100))*Puan*100)/Puan;

 
1Dave7:
SL 10 Pips veya daha büyükse, birden fazla EA'dan herhangi bir açık bilet siparişini kapatacak bir EA'yı nasıl oluşturabilirim?

Dave

<<<

Myfxidea, şamdan desen grafik hizmetidir ve mt4 için uzman danışman sağlar

 
Roger09:
ОК double lasttwonumbers=(Bid-MathFloor(Bid/(Puan*100))*Puan*100)/Puan;

Tıkır tıkır çalışıyor. Tüm yardımların için teşekkür ederim

 

Sürükleme Durdurma Yardımı / 1 Risk veya M Pozisyonu

Herkese selam,

Forumda sorunum için bir çözüm aramayı denedim:

EA'mın başında:

//---- buy conditions

if(Ask > mybuyconditions)

{

ticket=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-lowestof10bars), ((BBupper-BBlower)/(Ask-lowestof10bars))*1000 ,"Einstieg 1",magic+1,0,Green);

}

//---- sell conditions

if(Bid < mysellconditions)

{

ticket=OrderSend(Symbol(),OP_SELL,LotsShort(),Bid,Spread,Ask+(highestof10bars-Bid), ((BBupper-BBlower)/(highestof10bars-Bid))/100 ,"Einstieg -1",magic-1,0,Red);

}

//----[/CODE]

Stopploss: its easy 10 bars hi/lo

Takeprofit: here i write my formula for my Trailingstop, and that is:

Take the differenz of BBupper - BBlower at the order open time. Then divide by StopLoss in Pips and you have an Factor. Then take the actual BB differenz and divide it by this Faktor. NOW WE HAVE OUR VOLA BB TRAILINGSTOPP!!!!!

SO, my big problem is now to save this FAKTOR!!!! I saved it in th Takeprofit of Ordersend, it works but it is not right!!!!!

And know the 2te Question:

Position Management:

so my order is open and i have my trailing stopp that trails : So and now if the trailingstop is > orderopenprice send next ORDER!!! It's logical because so i can always sicure to risk just my 1 R Risk.

.... if Trailingstopp is > orderopenprice of secondOrder send 3te order.

HERE MY EXAMPLES:

for(int i = (OrdersTotal()-1); i >= 0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 2",magic+2,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2 && CalculateCurrentAfterOrders(Symbol()) <= 1)

{

if(OrderStopLoss()<Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 3",magic+3,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3 && CalculateCurrentAfterOrders(Symbol()) <= 2)

{

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

}

}

}

[CODE] if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

{

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 2",magic+2,0,Green);

return;

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 3",magic+3,0,Green);

return;

}

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(CalculateCurrentOrders(Symbol()) == 0)

{

OrderClose(ticket1,OrderLots(),Ask,Spread,Red); return;

}

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3)

{

OrderClose(i,OrderLots(),Ask,Spread,Red); return;

}

Umarım birisi bana bu sorunla yardımcı olabilir !!!!! Herkese teşekkürler.

 

Kod Ekleme Konum size karşı geldiğinde "x" pip sabit tpsl ile ek lot ekleyin

merhaba

çok fazla araştırma yaptım ve bu işlevi EA'ma eklemenin iyi olabileceğini öğrendim

Konum size karşı geldiğinde "20" pip, kendi TP ve SL girişi ile ek "0.1" lotu ekleyin

farkına varmak mümkün mü??

Ayrıca bu Ea çok iyi ama sadece SATIN AL açar

belki reklam "sat" mantığı

Lütfen bana yardım et

Dosyalar:
_v1.2.mq4  6 kb
 

Bir Programlama Sorunuyla İlgili Yardıma İhtiyacınız Var

EveryTickMode'u false olarak ayarlarsanız, Metatrader 4'ü önceki pozisyondan çıkmak ve AYNI çubukta yeni pozisyonu açmak için nasıl programlayabilirsiniz? EveryTickMode'u True olarak ayarladığınızda bunu otomatik olarak yapar ancak false olarak ayarladığınızda bir çubuktaki önceki konumu kapatır ve sonraki çubuğun yeni konumu açmasını bekler. ben kullanıyorum

H4 zaman dilimi ve sinyal verildikten sonra yeni bir pozisyon açmak için 4 saat daha beklemek kabul edilemez. Sistemim EveryTickMode=True kullanmak için çok hassas. Herhangi birinin bana bu konuda verebileceği herhangi bir yardım çok takdir edilecektir.

 

Ordersend hatasını aşmak için gereken yardım 130

Aşağıda benim satın alma fonksiyonum var. order_type değişkenini 1'e (piyasa emri için) ayarlarsam çalışır, bu nedenle stoploss ve takeprofit fonksiyonlarımın çalıştığını biliyorum. Sorun, op_buylimit siparişi için fiyat belirlemede olmalıdır. Sipariş fiyatımı, Ask'ı mum gövdesinin (1. çubukta) uzunluğunun (pct_of_length) bir yüzdesi kadar azaltarak hesaplamaya çalışıyorum. Çok sayıda kodlama varyasyonu denedim (bazıları NormalizeDouble dahil), ancak 130 hatasının ötesine geçemiyorum. Biri yardım edebilir mi? Bu arada IBFX kullanıyorum.

Şimdiden teşekkürler!

bool place_buy_order() {

int bilet, uzunluk_in_pips, offset_in_pips;

çift buy_limit_price;

// pct_of_length, şu anda 10'a ayarlanmış harici bir tamsayıdır

if ( order_type == 2 && pct_of_length > 0 )

{

length_in_pips = MathAbs(Yüksek[1]-Düşük[1]) * MathPow(10,Digits);

offset_in_pips = MathRound(length_in_pips * (pct_of_uzunluk/100));

buy_limit_price = Sor - offset_in_pips * Puan;

bilet = OrderSend(Symbol(),OP_BUYLIMIT,LotSize(),buy_limit_price,0,stoploss("b",buy_limit_price),takeprofit("b",buy_limit_price),"",MAGICMA,0,Mavi);

}

başka

// Market siparişi

bilet = OrderSend(Symbol(),OP_BUY,LotSize(),Ask,Slippage,stoploss("b",Ask),takeprofit("b",Ask),"",MAGICMA,0,Mavi);

if (bilet == -1 ) dönüş(yanlış); başka dönüş(doğru);

}

 

TP, SL vb. gibi çeşitli değişkenleri yazdırmayı ve doğru ayarlanıp ayarlanmadığını görmeyi denediniz mi? Bu size sorunun nerede olduğuna dair bir ipucu verebilir.

Lüks

 
stocktrader24202:
EveryTickMode'u false olarak ayarlarsanız, Metatrader 4'ü önceki pozisyondan çıkmak ve AYNI çubukta yeni pozisyonu açmak için nasıl programlayabilirsiniz? EveryTickMode'u True olarak ayarladığınızda bunu otomatik olarak yapar ancak false olarak ayarladığınızda bir çubuktaki önceki konumu kapatır ve sonraki çubuğun yeni konumu açmasını bekler. H4 zaman dilimini kullanıyorum ve sinyal verildikten sonra yeni bir pozisyon açmak için 4 saat daha beklemek kabul edilemez. Sistemim EveryTickMode=True kullanmak için çok hassas. Herhangi birinin bana bu konuda verebileceği herhangi bir yardım çok takdir edilecektir.

EveryTickMode, EA'nın orijinal kodlayıcısının ÖZEL OLARAK içerdiği bir değişkendir, böylece aynı mumda açmayı VEYA bir sonrakinde açmayı seçebilirsiniz.

EA tam olarak tasarlandığı şeyi yapıyor gibi görünüyor, bu yüzden probleminizin ne olduğundan emin değilim.

Değişkeni true olarak ayarladığınızda istediğiniz gibi çalıştığını söylüyorsunuz, sorun ne? Sadece değişkeni true olarak ayarlayın.

Lüks