コーディングのヘルプ - ページ 471

 
systemfault:
こんにちは、皆さん。

私はシンプルなEAを持っていますが、4桁のためにプログラムされています。(例: EUR/USD: 1,1234)

5桁の数字を使うにはどうしたらいいですか?(例:EUR/USD: 1,12345)

ありがとうございます:)

シンプルエアー.mq4

あなたはこれを追加することができます。

*MathPow(10,_Digits%2)を追加することができます。

あなたが_Pointを使用して、それが4と5桁のブローカーに等しくピップで動作しますどこにある

____________________

 

mladenさん、こんにちは。

投稿ありがとうございます。

私はこうしています。

int CheckForOpen()

{

double L = Low;

double H = High;

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

if((H-Bid>Limit*Point))

{OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,""、MAGICMA、0、CLR_NONE).FOR(int i=1; i=1)。

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

}

if((Bid-L>Limit*Point))

{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,0,0,""MAGICMA,0,CLR_NONE);}; }.

}

}

その真偽は?

 
systemfault:
こんにちは、mladenです。

投稿ありがとうございます。

私はこうしています。

int CheckForOpen()

{

double L = Low;

double H = High;

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

if((H-Bid>Limit*Point))

{OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,""、MAGICMA、0、CLR_NONE).FOR(int i=1; i=1)。

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

}

if((Bid-L>Limit*Point))

{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,0,0,""MAGICMA,0,CLR_NONE);}; }.

}

}

ほんまかいな

はい

しかし、グリッドパラメータを 1500から150に変更します。そうしないと、BidまたはAskから1500pips離れた価格を設定しようとします。

 

その構成で使っています。

extern int PeriodX = 60;

extern int Limit = 50;

extern int Grid = 14;

extern int Amount = 1;

extern int LockDown = 20;

この構成はどうでしょうか?

 
systemfault:
この構成で使っています。

extern int PeriodX = 60;

extern int Limit = 50;

extern int Grid = 14;

extern int Amount = 1;

extern int LockDown = 20;

そのコンフィギュレーションはどうですか?

アスクとビッドから14ピップ離れたところに買いと売りのリミットを オープンします。

試しにやってみましょう。

 
mladen:
アスクとビッドから14ピップ離れたところに買いと売りのリミットをオープンします 試してみてください

試してみると...どうやら...

ファイル:
adsz.png  35 kb
 
systemfault:
試してみると...どうやら...

私が見る限り、それは意図したとおりになっています。

 
mladen:
私が見る限り、それはそれが意図していることをやっています。

ええ、そうです...

しかし、私は利益とストップロス14ピップスなしで注文を閉じたくはないのです。

 
systemfault:
ええ、そうです。しかし、私は利益とストップロス14ピップスなしで注文を閉じたくはありません。

それから、テイクプロフィットと ストップロスも追加してください。

 
mladen:
そして、テイクプロフィット、ストップロスも追加してください。

このコードを追加しました。

int CheckForClose()

{

if(getProfit()>=Amount){CloseAll();}。

if(LockDown>0)

{

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

{

if (OrderSelect(TradeNumber, SELECT_BY_POS, MODE_TRADES)&&(LockDown>0))

{ int Pos=OrderType();

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_SELL)&&(OrderOpenPrice()-Ask>Point*MathPow(10,_Digits%2) *LockDown)&&(OrderStopLoss()==0)))。

{OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Point,OrderTakeProfit(),0,CLR_NONE);}を行う。

}

}

}

}

例えば、EUR/USDの注文価格1.12345 sl/tp 1.12346

私はSL/TP 1.12355にしたい

何が間違っているのか理解できないのですが?