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

 
mladen:
この部分

if(newbar==Time[0])return(0);

else newbar=Time[0]です。

int ticket, total;

if(Bars<100)

{

Print("bars less than 100");

return(0);

}

if(テイクプロフィット<10)

{

Print("TakeProfitが10未満");

return(0); // TakeProfitのチェック

}

新しいバーの最初のティックでなく、利益が10ピップス以上でない場合、EAが特定の時間に注文を閉じることを防止しています。

mladenさん、その部分を削除 したのですが、まだ私のEAは希望するタイミングでクローズしません。

何が原因なのか、お分かりになりますか?ありがとうございます。

よろしくお願いします。

ライアン

 
tkuan77:
mladenさん、その部分を削除しましたが、まだ私のEAは希望するタイミングに閉じません。

何が原因なのか、心当たりはないでしょうか?ありがとうございました。

掲示板

Ryan

ブローカー時刻が07:00:00のときだけ注文をクローズするように書かれています。

 
mladen:
この方法では、ブローカー時刻が07:00:00の場合のみ注文をクローズします。

mladenさん、こんにちは!こちらではうまくいかないようなので、他に方法はないでしょうか?

よろしくお願いします。

ライアン

 
tkuan77:
mladenさん、どうもうまくいかないようなので、他に方法はないでしょうか。

採用情報

ライアン

次のようにしてみてください。

If (TimeCurrent()>= StringToTime("07:00:00")) を使ってみてください。

の代わりに

 
mladen:
を使用してみてください。

If (TimeCurrent()>= StringToTime("07:00:00"))

代わりに

mladenさん、こんにちは、まだうまくいきません。こちらの行が原因ではないかと思うのですが、OrdersTotalかOrderSelectのどちらかが問題を起こしているのでしょうか?

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

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

よろしくお願いします。

ライアン

 
tkuan77:
mladenさん、こんにちは、まだうまくいきません。こちらの行が原因ではないかと思うのですが、OrdersTotalかOrderSelectのどちらかが問題を引き起こしているのでしょうか?

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

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

となります。

ライアン

いいえ、これらの行は正しいです

 
mladen:
いいえ、この行は正しいです

こんにちは、mladenです。私のEAは、どの時点でも1つの取引しかできないように設定しています。

これはエラーになる可能性があります。

else if(total > 1) //タイミングを見て注文を打ち切る...まだ解決していません。

{

if (Hour()==7 && Minute()==30)

{

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

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (オーダータイプ()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID)。

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue).を実行します。

}

if (オーダータイプ()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,赤);

}

}

}//

}

return(0);

}

 
tkuan77:
こんにちは、mladenです。私のEAは、どの時点でも1つの取引しかできないように設定されているので、OrdersTotalは、1-1で私のint i countをマイナス0に設定することに気づきました、i>0; i--は私のi=-1になります。

ということで、もしかしたらこれがエラーになるのでは、と思っていました。

else if(total > 1) //タイミングを見て注文を締め切る...未解決です。

{

if (Hour()==7 && Minute()==30)

{

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

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (オーダータイプ()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID)。

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue).を実行します。

}

if (オーダータイプ()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,赤);

}

}

}//

}

return(0);

}

f (Hour()==7 && Minute()==30) の部分を、私が送った行に置き換えて試してみてください。

OrdersTotal()は、未決済の注文がある場合、1を返します。OrderSelect()を使用する場合、その0 (OrdersTotal()-1) が正しい注文を選択することになります。OrdersTotal() が 0 を返す場合、アクティブな注文プールに未決済の注文がないことを意味します。

 
mladen:
f (Hour()==7 && Minute()==30) を私が送った行に置き換えて試してみてください。OrderSelect()を使用する場合、その0 (OrdersTotal()-1) が正しい注文を選択することになります。OrdersTotal() が 0 を返す場合は、アクティブな注文プールに未決済の注文がないことを意味します。

mladenさん、残念ながらもう一度試してみましたが、まだうまくいきません。

特定のタイミングに基づいて私の取引を終了することができる他の方法はありますか?

よろしくお願いします。

ライアン

 
mladen:
f (Hour()==7 && Minute()==30)) を、私が送った行に置き換えて試してみてください。OrderSelect()を使用する場合、その0 (OrdersTotal()-1) が正しい注文を選択することになります。OrdersTotal() が 0 を返す場合は、アクティブな注文プールに未決済の注文がないことを意味します。

どうもmladenです。このライナーが問題を引き起こしていたようです。

else if(total > 1)

ご協力ありがとうございました。

ありがとうございました。

ライアン

理由: