コーディングの方法は? - ページ 170

 
Roger09:
を見てください。

double NormalizeDouble( double value, int digits)

digits=2 とすれば、希望する値が表示されます。

こんにちは。

私は非常に明確ではなかったと思います。例えば

- 現在の価格が1.3756である場合、コードは56を返すべきです。

- 現在の価格が99.22の場合、コードは22を返すべきです。

- 現在の価格が1.4499の場合、コードは99を返すべきです。

基本的に、私は、引用が小数点以下4桁であろうと2桁であろうと、最後の2桁の値を返そうとしています。

NomalizeDoubleは、指定された桁数までしか価格を切り上げません

どなたかアイデアをお持ちの方はいらっしゃいますか?

 
musical:
こんにちは。

あまり明確ではなかったと思います。例えば

- 現在の価格が1.3756の場合、コードは56を返すべきです。

- 現在の価格が99.22の場合、コードは22を返すべきです。

- 現在の価格が1.4499の場合、コードは99を返すべきです。

基本的に、私は、引用が小数点以下4桁であろうと2桁であろうと、最後の2桁の値を返そうとしています。

NomalizeDoubleは、指定された桁数になるように価格を切り上げるだけです。

どなたかお分かりになる方はいらっしゃいますか?

ОК

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

 
1Dave7:
SLが10Pips以上の場合、複数のEAからのオープンチケット注文をクローズアウトするEAを作成するには?

デイブ

<<<

Myfxideaはローソク足チャートサービスであり、MT4用のエキスパートアドバイザーを提供しています。

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

魅力的に動作します。ありがとうございました。

 

Trailling Stop / 1 Risk or Position Mに関するヘルプ

こんにちは。

私は、フォーラムで私の問題の解決策を検索しようとしました。

私のEAの冒頭で。

//---- 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;

}

私は誰かがこの問題で私を助けることができることを願っています!!!!!!!すべての人に感謝します。

 

コードの追加 ポジションが不利になった時、"x "pips追加するコード 固定tpslで追加ロット

こんにちは。

いろいろ研究した結果、私のEAにこの機能を 追加するのが良いことがわかりました。

ポジションが"20 " pips不利になったとき、独自のTPとSL入力で追加ロット"0.1 " を追加する。

を実現することは可能でしょうか?

また、このEAは非常に良いのですが、BUYSしか開きません。

売り」のロジックを追加してください。

助けてください

ファイル:
_v1.2.mq4  6 kb
 

プログラミングの問題でヘルプが必要

EachTickModeをfalseに設定すると、同じバーで前のポジションを終了し、新しいポジションを開くようにMetatrader 4をプログラムするにはどうすればよいですか?EachTickModeをTrueに設定すると自動的にそうなりますが、Falseに設定すると、あるバーで前のポジションを閉じ、次のバーを待って新しいポジションを開くようになります。私は

H4タイムフレームを使用しており、シグナルが与えられた後、新しいポジションをオープンするためにさらに4時間待つことは受け入れられません。私のシステムはEachTickMode=Trueを使用するにはあまりに敏感です。この件に関して、どなたか私に与えることができるどんな助けでも、非常に感謝します。

 

Ordersend エラー 130 を克服するためのヘルプが必要です。

下記は私の買い関数です。変数order_type を 1 (成行注文) に設定すると動作するので、ストップロスとテイクプロフィットの関数が動作していることが分かります。問題は、op_buylimit注文の価格の決定にあるのでしょう。私は、ローソク足(バー1)の長さ(pt_of_length)の割合でAskを減少させることによって注文価格を計算しようとしているのです。いろいろなコーディング(NormalizeDoubleを含む)を試しましたが、エラー130を超えることができません。どなたか教えてください。ちなみに私はIBFXを使っています。

よろしくお願いします。

bool place_buy_order() { (ブールプレイスバイオーダー)

int ticket, length_in_pips, offset_in_pips;

double buy_limit_price;

// pct_of_lengthは外部の整数で、現在は10に設定されています。

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

{

length_in_pips = MathAbs(High[1]-Low[1]) * MathPow(10,Digits);

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

buy_limit_price = Ask - offset_in_pips * Point;

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

}

その他

// 成行注文

ticket = OrderSend(Symbol(),OP_BUY,LotSize(),Ask,Slippage,stoploss("b",Ask),takeprofit("b",Ask),"", MAGICMA,0,青).Ifチケット=-1;

if ( ticket == -1 ) return(false); else return(true);

}

 

様々な変数、TP、SLなどをプリントアウトして、それらが正しく設定されているかどうか見てみましたか?そうすれば、問題がどこにあるのか、手がかりが得られるかもしれません。

ラックス

 
stocktrader24202:
EachTickModeをfalseに設定すると、同じバーで前のポジションを終了し、新しいポジションを開くようにMetatrader4をプログラムすることはできますか?EachTickModeをTrueに設定すると自動的にそうなりますが、Falseに設定すると、あるバーで前のポジションを閉じ、次のバーを待って新しいポジションを開くことになります。私はH4タイムフレームを使用しており、シグナルが与えられた後、新しいポジションを開くためにさらに4時間待つことは受け入れられません。私のシステムはEachTickMode=Trueを使用するにはあまりに敏感です。この件に関して、どなたか私に与えることができるどんな助けでも、非常に感謝します。

EachTickModeは、EAのオリジナル開発者が、同じローソク足で開くか、次のローソク足で開くかを選択するために、特別に組み込んだ変数です。

EAが設計されたとおりに動いているように聞こえるので、何が問題なのかよくわかりません。

変数をtrueに設定すると思い通りに動作すると言っていますが、何が問題なのでしょうか?ただ、変数をtrueに設定するだけです。

ラックス