アスク! - ページ 38

 

イアン

Straddle&Trail expertをチェックしてみてください。こちらhttps://www.mql5.com/en/forum/general

 

皆さん、こんにちは。

私はすべての注文を同時にクローズしたいのですが、それができません。

このコードを試してみましたが、うまくいきませんでした。

''''''''''''''''''''''''''''''''''''''''

total = OrdersTotal();

for(i=0;i < total;i++)

{

if(OrderSelect(i, SELECT_BY_POS)==true)

{

OrderClose(OrderTicket(),OrderLots(),Ask,80,CLR_NONE)。

オーダークローズ(OrderTicket(),OrderLots(),Bid,80,CLR_NONE);

}

}

''''''''''''''''''''''''''''''''''''''''

どなたか助けていただけませんか?

助けていただけると幸いです。

 

Mehdiです。

このコード(手続き)をstart()セクションの外に置いて、すべてのトレードをクローズする条件が満たされたときに、このような手続きを呼び出すだけです。

int start()

int start() { // ここにあなたのコードを......。

もし(ここにあなたの条件)ShutDownAllTrades()。

}

void ShutDownAllTrades

{ int Retry;

While (OrdersTotal()>0)

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

{ OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

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

{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }.

RefreshRates();

オーダークローズ(OrderTicket(),OrderLots(),Bid,Slippage,Yellow);

Sleep(1000);

}

else if (OrderType()==OP_SELL)

{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }.

RefreshRates();

オーダークローズ(OrderTicket(),OrderLots(),Ask,Slippage,Yellow);

Sleep(1000);

}

その他

{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }.

OrderDelete(OrderTicket())。

Sleep(1000);

}

}

}

}

HTH

ヤンニ

 

ヤニスさんへ。

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

あなたの成功を祈っています。

 
Yannis:
Mehdi。

このコード(プロシージャ)をstart()セクションの外に置き、すべてのトレードをクローズする条件を満たしたときに、このようにプロシージャを呼び出すだけです。

int start()

int start() { // ここにあなたのコードを......。

If (ここにあなたの条件) ShutDownAllTrades();

}

void ShutDownAllTrades

{ int Retry;

While (OrdersTotal()>0)

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

{ OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

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

{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }.

RefreshRates();

オーダークローズ(OrderTicket(),OrderLots(),Bid,Slippage,Yellow);

Sleep(1000);

}

else if (OrderType()==OP_SELL)

{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }.

RefreshRates();

オーダークローズ(OrderTicket(),OrderLots(),Ask,Slippage,Yellow);

Sleep(1000);

}

その他

{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }.

OrderDelete(OrderTicket())。

Sleep(1000);

}

}

}

}

HTH

ヤンニ

ヤニスさんへ。

私はあなたが言ったように " int deinit() { } " (アウトオブスタート)の間にあなたの手順を追加しましたが、void ShutDownAllTrades { : '{' コンマまたはセミコロンの期待後コンパイルを介して問題があります。

私はあなたからのお便りを楽しみにしています。

多くのおかげで

 

おっと失礼しました。

void ShutDownAllTrades() の後の()が抜けてますね。

また、orderclose関数 内の「Slippage」という変数にも注意してください。

注文を出すときに使っている変数と入れ替える必要があるかもしれません。

Yannis

 
Yannis:
おっと失礼しました。

void ShutDownAllTrades() の後の()が抜けています。

また、orderclose関数内の'Slippage'という変数に注意してください。

注文時に使用する変数と置き換える必要があるかもしれません。

Yannis

とてもうまくいっていますね。!

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

 

マルチタイムフレームインジケーターのスレッドにあるMTF CCIインジケーターを使用しています。

この線が100を超えると(買われすぎ)、価格は下がり、-100を下回ると(売られすぎ)、価格は上がります。

唯一の問題は、常に更新されないことで、チャート上で右クリックして「更新」を選択して手動で行う必要があります。

プログラマーに質問です。MQ4には、このようなティック 毎の自動更新を行う機能はありますか?

アドバイスをお願いします。

ユーロピアン

ファイル:
mtf_cci.jpg  37 kb
 

これを試してみてください。

void ObjectsRedraw()

チャート上のすべてのオブジェクトを再描画します。

サンプル

ObjectsRedraw()のサンプルです。

先にObjectCreateを使用 する必要があるかもしれません。

 
richx7:
これを試してみてください。

void ObjectsRedraw()

チャート上のすべてのオブジェクトを再描画します

サンプル

ObjectsRedraw()を実行します。

まず、ObjectCreateを使用する必要があるかもしれません。

ご回答ありがとうございます。

私の知る限り、ObjectsRedraw()は、「作成」と「設定」されたばかりのオブジェクトをリフレッシュします。

オブジェクトリストにないインジケータをリフレッシュする必要があるため、ObjectsRedraw()は機能しません。

あるいは、既存のインジケータを参照する方法をご存知でしょうか?