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

 

こんにちは、Wolfe

wolfe:
私はこれが前にカバーされている知っているが、誰かがバーごとに1つだけ取引を許可するためにいくつかのコードを表示することができますか? ありがとうございます。

私の場合、次のように動作します。

datetime LastOpenTime=0;

int 順序

for(int t=0;t<OrdersTotal();t++)

{

if(OrderSelect(t, SELECT_BY_POS, MODE_TRADES))

{

if (OrderSymbol() == Symbol() && OrderMagicNumbers() == MagicNumbers && OrderType() == OP_SELL)

{

if(OrderOpenTime()>LastOpenTime)LastOpenTime=OrderOpenTime()。

}

}

}

そして、これを自分のコードに貼り付けます。

if(LastOpenTime0)

{ OrderSend(blah blah)

Time[0]は時間枠のローソクの始まりなので、正しい時間枠を選択してください。

 
waltini:
これは私の場合

datetime LastOpenTime=0;

....................

Time[0]はタイムフレームのローソク足の始まりなので、正しいタイムフレームを選択することを確認してください。

これは、もう少し簡単かもしれません。

datetime LastOpenTime; //Global var

[/CODE]

[CODE]

int init()

{

LastOpenTime=Time[0];

}

int start()

{

................

if(LastOpenTime!=Time[0])

{

// do your trade code

LastOpenTime=Time[0];

}

..............

return(0);

}

あなたの「トレードコード」は、どのローソク足でも一度だけ実行されます。MT4を一度閉じて、再度起動しても、そのローソク足ではもう取引は行われません。ただし、午後5時のローソク足でEAを起動したとすると、そのローソク足ではトレードは行われず、次のローソク足を待つ必要があることに注意してください。

 
wolfe:
以前にも取り上げられたことがあると思いますが、どなたか1つのバーに1つの取引しかできないようにするコードを教えていただけませんか? ありがとうございます。

グローバル、init()の前にこれを置く

datetime PreviousBar;[/CODE]

In the order placement and/or order close stuff, wrap it in this:

if(NewBar() == true)

{

if blah blah blah, gimme pips // not actual functions but you get the idea

if blah blah blah, close orders // um

}

Common function outside main loop:

[CODE]//--- returns true if current bar just formed

bool NewBar()

{

if(PreviousBar<Time[0])

{

PreviousBar = Time[0];

return(true);

}

else

{

return(false);

}

return(false);

}
 

プログラミングに関するヘルプ

こんにちは。

私はプログラミングをしようと頑張っているのですが、レンガの壁にぶつかっています。そこで、本当に簡単なことをやってみました。Print("Five");」のコメントを解除して、プログラムをテストすると、「Yahooooooo」とだけ表示されます。(まあ、"1 "も印刷されるのですが)。Print("Five");」をコメントアウトすると、「Yahooooooo」さえもプリントされなくなりました。何が足りないのでしょうか?

ファイル:
trial.mq4  2 kb
 

1つの取引がTPに到達したら、すべての保留中の注文と新規注文をクローズする。

こんにちは。

私のEAで、1つの取引がTPにヒットしたら、すべての保留中の注文と未決済の注文をクローズするコードを書こうとしています。以下は私が使用したコードですが、機能していないようです。誰かが見て、何が欠けているのか助言することができます。ありがとうございます。

if( PreviousOpenOrders > OpenOrders )

{

for( cnt = OrdersTotal()-1; cnt >= 0; cnt-- )

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

モード = OrderType();

if( OrderSymbol() == Symbol() && ・・・。

OrderMagicNumber()==Magic)

{

if( mode == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue);

if( mode == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red); if( mode == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Slippage,Red);

if (mode == OP_SELLLIMIT) OrderDelete(OrderTicket());

if (mode == OP_BUYLIMIT) OrderDelete(OrderTicket())。

}

}

}

}

 

OrderClosePrice()の代わりに、BidとAskをそれぞれ使用する...

 
ralph.ronnquist:
OrderClosePrice()の代わりにBidとAskをそれぞれ使用する...

こんにちは、ralphです。

例を挙げるのを手伝ってくれませんか。助けてくれてありがとうございます。

 
timebandit:
こんにちは、私はプログラミングをしようと頑張っているのですが、レンガの壁にぶち当たっています。そこで、本当に簡単なことをやってみました。Print("Five");" のコメントを外してプログラムをテストすると、"Yahooooooo" としか表示されません。(まあ、"1 "も印刷されるのですが)。Print("Five");」をコメントアウトすると、「Yahooooooo」さえもプリントされなくなりました。何が足りないのでしょうか?

括弧を使用しない場合は、1行だけ実行されます。何をしたいのかにもよりますが、こんな感じでしょうか。

if(d>5)

{

Print("Five");

Print("Yahoooooooooooooooooooooooo");

}
 

if( mode == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Blue);

if( mode == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);

 

ストップワンの移動

これは、ある利益を得た後にストップロスをブレークイーブンに移動 させるための私のちょっとしたコードです。何か問題があるのでしょうか?

//MoveOnce

if(MoveStopOnce && MoveStopWhenPrice > 0) {

if(Bid - OrderOpenPrice() == Point * MoveStopWhenPrice) {

OrderModify(OrderTicket(),OrderOpenPrice(), Bid - Point * MoveStopTo, OrderTakeProfit(), 0, Red);

if (!EachTickMode) BarCount = Bars;

continue;

}

}