Kodlama yardımı - sayfa 471

 
systemfault:
Herkese merhaba,

yardıma ihtiyacım var... basit bir ea'm var ama 4 haneye programlanmış. (Örneğin: EUR/USD: 1,1234)

ea 5 hanemi nasıl kullanabilirim? (Örneğin: EUR/USD: 1.12345)

Teşekkürler:)

basitea.mq4

Bunu ekleyebilirsiniz:

*MathPow(10,_Digits%2)

_Point'i nerede kullanırsanız kullanın, 4 ve 5 haneli brokerlerde eşit olarak piplerde çalışacaktır.

______

 

merhaba mladen,

Gönderi için teşekkürler.

ben bunu yapıyorum.

int CheckForOpen()

{

çift L = Düşük;

çift H = Yüksek;

double Lot = MathRound(AccountBalance()/100)/1000;

if((H-Teklif>Sınır*Nokta))

{OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,"",MAGICMA,0, CLR_NONE );

for(int i=1; i<5; i++){OrderSend(Symbol(),OP_BUYLIMIT,MathPow(2,i)*Lots,Ask-i*Grid*Point* MathPow(10,_Digits%2) ,1, 1 0,0,"",MAGICMA,0,CLR_NONE);}

}

if((Teklif-L>Limit*Puan))

{OrderSend(Symbol(),OP_SELL,Lots,Bid,1,0,0,"",MAGICMA,0,CLR_NONE);

for(int j=1; j<5; j++){OrderSend(Symbol(),OP_SELLLIMIT,MathPow(2,j)*Lots,Bid+j*Grid*Point* MathPow(10,_Digits%2) ,1,1, 0,0,"",MAGICMA,0,CLR_NONE);}

}

}

bu doğru?

 
systemfault:
merhaba mladen,

Gönderi için teşekkürler.

ben bunu yapıyorum.

int CheckForOpen()

{

çift L = Düşük;

çift H = Yüksek;

double Lot = MathRound(AccountBalance()/100)/1000;

if((H-Teklif>Sınır*Nokta))

{OrderSend(Symbol(),OP_BUY,Lots,Sor,1,0,0,"",MAGICMA,0,CLR_NONE);

for(int i=1; i<5; i++){OrderSend(Symbol(),OP_BUYLIMIT,MathPow(2,i)*Lots,Ask-i*Grid*Point* MathPow(10,_Digits%2) ,1, 1 0,0,"",MAGICMA,0,CLR_NONE);}

}

if((Teklif-L>Limit*Puan))

{OrderSend(Symbol(),OP_SELL,Lots,Bid,1,0,0,"",MAGICMA,0,CLR_NONE);

for(int j=1; j<5; j++){OrderSend(Symbol(),OP_SELLLIMIT,MathPow(2,j)*Lots,Bid+j*Grid*Point* MathPow(10,_Digits%2) ,1,1, 0,0,"",MAGICMA,0,CLR_NONE);}

}

}

bu doğru?

Evet

Ancak daha sonra Grid parametresini 1500'den 150'ye değiştirin, aksi takdirde fiyatı Bid veya Ask'tan 1500 pip uzağa ayarlamaya çalışacaktır.

 

Bu konfigürasyonu kullanıyorum;

harici int DönemX = 60;

harici int Sınır = 50;

harici int Izgara = 14;

harici int Tutar = 1;

harici int LockDown = 20;

Bu nasıl konfigürasyon?

 
systemfault:
Bu konfigürasyonu kullanıyorum;

harici int DönemX = 60;

harici int Sınır = 50;

harici int Izgara = 14;

harici int Tutar = 1;

harici int LockDown = 20;

Bu nasıl konfigürasyon?

Alış ve satış limitlerini 14 pip uzakta sor ve tekliften açacak

Denemek

 
mladen:
Alış ve satış limitlerini 14 pip ötede aç ve sor ve teklif et Deneyin

deniyorum... öyle görünüyor ki...

Dosyalar:
adsz.png  35 kb
 
systemfault:
deniyorum... öyle görünüyor ki...

Anladığım kadarıyla amacına ulaşıyor

 
mladen:
Anladığım kadarıyla amacına ulaşıyor

evet mladen..

Ama emirleri kar ve stoploss 14 pip olmadan kapatmak istemiyorum

 
systemfault:
Evet boş.. Ama emirleri karsız ve stoploss 14 pip kapatmak istemiyorum

Sonra kar al ve zararı durdur da ekleyin

 
mladen:
Sonra kar al ve zararı durdur da ekleyin

bu kodu ekledim;

int CheckForClose()

{

if(getProfit()>=Miktar){CloseAll();}

if(Kilitle>0)

{

for(int TradeNumber = OrdersTotal(); TradeNumber >= 0; TradeNumber--)

{

if (OrderSelect(Ticaret Numarası, SELECT_BY_POS, MODE_TRADES)&&(LockDown>0))

{ int Konum=SiparişTürü();

if((Pos==OP_BUY)&&(Bid-OrderOpenPrice()>Point*MathPow(10,_Digits%2)*LockDown)&&(OrderStopLoss() == 0))

{OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+Point,OrderTakeProfit(),0, CLR_NONE );}

if((Pos==OP_SEL)&&(OrderOpenPrice()-Ask>Point*MathPow(10,_Digits%2)*LockDown)&&(OrderStopLoss() == 0))

{OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Point,OrderTakeProfit(),0,CLR_NONE);}

}

}

}

}

Örneğin; EUR/USD sipariş fiyatı 1.12345 sl/tp 1.12346

1.12355 sl/tp yapmak istiyorum

neyin yanlış gittiğini anlamıyorum?

Neden: