すべて閉じる」/「開く」ツール - ページ 2

 
glader:
私はライブで取引しています。ライブで取引していますか?もしかしたら、問題があるかもしれません。

アルパリのデモ口座でした。

リアル口座 で使ってみたということでしょうか?

同じように動作するはずです。

 
newdigital:
Alpariのデモ口座です。

実際のアカウントで使用しようとしたということですか?

同じように動作するはずです。

はい、ライブで本物のアカウント で使おうとしたのですが、エラーメッセージが表示されました。

かなり混乱しましたが、とにかく助けていただきありがとうございます...

 
glader:
試してみましたが、ERROR : 4109です。

ツール->オプション->ExpertAdvisors->V ExpertAdvisors(...とスクリプト)を有効化する。

 
ma6:
ツール->オプション->ExpertAdvisors->V ExpertAdvisors(...とスクリプト)を有効にしてください。

ありがとうございます。

 

KimivのCloseOnTime EA。

ファイル:
 
ma6:
ツール->オプション->ExpertAdvisors->V ExpertAdvisors(...とスクリプト)を有効化する。

まだ同じエラーが出ます。V"とはどういう意味ですか?

サンクス

 

同じ問題があります。

オーダー......クローズに失敗しました .Error:4109

 

開いているすべての注文を閉じる

すべてのオープンした取引をクローズする方法について質問があります。これには手動で開いた取引も含まれます。

以下はそのコードです。

if(BalanceEquityProtectionLevel > 0 && AccountEquity() <= AccountBalance ()* BalanceEquityProtectionLevel)

{

AllowTrading = false;

Print("Min.取引停止",Symbol()).AllowTrading = false; Print("Min. Equity Level Reached - Trading Halted For ",Symbol());

// Alert("Min.Equity Level Reached - Trading Halted For ",Symbol())。

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

mode=OrderType();

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

if (mode==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red); } { 注文終了。

// }

}

}

問題は、もし私がいくつかのペアをオープンした場合、すべてのトレードがクローズされるとは限らないということです。さらに、allowtrading == falseというパラメータが あるにもかかわらず、EAが別の取引を開始し続けるということがありました。

デバッグしていたら、なぜかこのコードブロックが全ペアで実行されないことに気づきました。なぜ、私は知らない。誰かその答えを知っていますか?

このブロックは、すべてのオープンオーダーをクローズし、さらなる取引を防止する必要があります。おそらく私は、ファイルか何かにパラメータfalseを書き込むことでこの問題を解決することができますか?この問題は、未決済の注文がないペアの場合にも発生します。

ありがとうございます。

Dejan

 

以下は、私が昔書いたコードで、実行中のポジションをすべて閉じます。

#include

#インクルード

int start()

{

double sA;

int cnt, totalOrders;

totalOrders = OrdersTotal();

if (totalOrders>0)

{

for (cnt=0;cnt<totalOrders;cnt++)

{

OrderSelect(0, SELECT_BY_POS);

if (OrderType() == OP_BUY) sA = MarketInfo(OrderSymbol(),MODE_BID)。

else sA = MarketInfo(OrderSymbol(),MODE_ASK).OrderClose(OrderTicket())。

OrderClose(OrderTicket(),OrderLots(),sA,3,CLR_NONE).のようになります。

}

}

return(0);

 

あなたのコードは私のコードと非常によく似ています。結果も同じです。もっと分かりやすくするために画像を添付します。

EAはGBPUSDペアの すべての取引を終了します(画像)。ご覧のように、この後、別の取引が開始されます。(1はallowtradeがtrue、0はfalseを意味します).

ファイル:
image3.jpg  359 kb