助けて! – OrderSendにTrailing Stopを追加することは可能ですか?新しい注文があるたびにトレーリングストップが必要です。

ここで初心者。

私は異なる時に5つの注文を開くために異なる条件を持っています。ただし、トレーリングストップは5番目の注文が開かれた後にのみ実行されます。

OrderSend()の利益のように機能するようにトレーリングストップをコーディングする方法新しい注文がオープンされると、どれが稼働していますか?


MQ4にはトレーリングストップのようなものはありません。価格が動くにつれて、EAはEACH注文(SL)を繰り返し修正します。

フォーラムを検索すると、コードの例が多数見つかります。


お返事ありがとうございます

私は知っている、私は私のために動作しないだろう通常の末尾の停止コードを持っています。

例:5つの注文を異なる時間に発注する条件がある場合、5番目の注文が行われた後にのみ実行されるため、前の既に開いて い訝輅犬竜_颪鯑┐垢海箸砲覆蠅泙后

トレーリングストップをコード化する他の方法はありますか?

通常の末尾停止コード:

(cnt = 0; cnt <total; cnt )の場合
{
OrderSelect(cnt、SELECT_BY_POS、MODE_TRADES);
if(OrderType()<= OP_SELL && OrderSymbol()== Symbol())
{
if(OrderType()== OP_BUY)//ロングポジションがオープンされている
{
//閉じる必要がありますか?
if(isCrossed == 2)
{
OrderClose(OrderTicket()、OrderLots()、Bid、3、Violet);
//ポジションを閉じる
(0)を返します。 // 出口
}
//末尾の停止を確認します
if(TrailingStop> 0)
{
if(Bid-OrderOpenPrice()> Point * TrailingStop $B!K
{
if(OrderStopLoss()<Bid-Point * TrailingStop)
{
OrderModify(OrderTicket()、OrderOpenPrice()、入札 –
ポイント* TrailingStop、OrderTakeProfit()、0、Green);
(0)を返します。


その答えは、あなたとあなたがあなた自身のコードにどのように統合するかにかかっています。追加注文が追加されるたびに市場をチェックしてすべての注文を変更するのをやめることは絶対にありません。

あなたがする必要があるように聞こえます:

a)少し時間をかけてあなた自身のEAとそれがどのように機能するかを理解する

b)コードスニペットを個別の関数として考えるのは避けてください。代わりに、それらを見て、それらに埋め込まれている技法を理解してください。

c)APPENDよりもむしろ統合

これは、フォーラムに参加していないプログラマの間でよく △襪海箸任后みんなのコードがモジュール化されていて、追加の関数をすべてドラッグ&ドロップすることができれば、それは素晴らしいことです。しかし、ちょっと、完璧なサービス指向アーキテクチャは存在しません。もしそうなら、それはMQLで書かれていないでしょう:-)

CB


CBが言ったこと

さらに、あなたは返品が欲しくない、あなたはすべての注文を処理したいです。

さらに、あなたは注文をクローズしながらカウントアップしたくありません。 close cnt = 0、cnt = 1はcnt = 0になり、見逃してしまいます。

(cnt = TotalOrders() – 1; cnt> = 0; cnt–){…}の場合


MT5の変更があるかどうかは誰でも知っています – 末尾の停止はまだクライアント側だけですか?



4085: https://www.mql5.com/en/forum/121058


Originally posted 2019-08-04 00:29:49.

Translate »