2つのポジションを独立して制御するトロールプロからアドバイスが欲しいのですが、どのように実装すればよいでしょうか? - ページ 4 123456789 新しいコメント Alexandr Bryzgalov 2011.10.30 19:35 #31 charony: 2sellでは、トロールはSLを850にするはずだった。 マニュアルトレードではなく、950で寄り付きました。 コード上ではどのように解決できるのでしょうか? なぜ、そんなことをするのでしょうか?もし価格が899にしか到達していなければ、トロールは50ピップス先にあるはずですから、950あたりのどこかにあるはずです。 削除済み 2011.10.30 20:02 #32 sanyooooook: なぜ、そんなことをするのだろう?価格が899にしか到達していない場合、トロールは50ピップス先にあり、したがって950付近のどこかにあるはずです。 1sellからSLでクローズした。 削除済み 2011.10.30 20:17 #33 知っている人が出てくるのを待とう。 削除済み 2011.10.31 09:29 #34 誰も知らない Avals 2011.10.31 09:42 #35 charony: 知らない人はいない あなたはおそらく、価格がポジションのオープン価格から 少なくともXピップス(例えば100)右側に移動したときにのみ、ポジションのためのトラールが有効になるようにしたいですか?もしそうなら、それはtrall関数に追加された1行のコードです。 100ポイント行ったら-50ポイント、さらに100ポイント行ったら-50ポイントで再びトラール、といった具合に、建値からXポイント経過した時点でトラールを発動させる方法もあります。 削除済み 2011.10.31 11:55 #36 Avals: 例えば、ポジションのオープン価格から少なくともXポイント(例えば100)だけ価格が必要な方向に動いたときにのみ、ポジションのトロールを有効にする必要があるのではないでしょうか?もしそうなら、それはtrall関数に追加された1行のコードです。 また、始値からXポイント経過するとトロールが発動するというバリエーションもあり、100p通過でトロール-50p、さらに100p通過で再びトロール-50p、などです。 私は、特定のイベントでトロールがオンになるように設定しています。 片方のポジションが開いても問題ありません。 2つ以上のポジションを開いている場合、trawlは1つのSLだけを表示します。 いずれかのポジションがSLに到達すれば このタイプのポジションはすべてクローズされます。 トレーラーは1種類のポジションを保持する必要がある 単独で Avals 2011.10.31 12:12 #37 charony: 私はそのようにしています。つまり、特定のイベントでトロールのスイッチが入ります。ポジションが1つでも空いていれば問題ありません。2つ以上のポジションをオープンした場合、トロールは1つのSLを設定するだけです。いずれかのポジションがSLに到達したときこのタイプのポジションはすべてクローズされます。 ストップロスはすべてのポジションで最終価格からTralingStop ポイントに同じように設定され、オープンポジションの 方向にのみ動きます。つまり、すべてのポジションについて、買いトレールは保有期間の 最大値から 設定され、もちろん最大値は共通となるため、すべて同時にクローズされます。同じ種類のポジションを互いに独立して閉じる」アルゴリズムとは何か、必要なものを考えてみてください。バリエーションが多いですね。 削除済み 2011.10.31 12:46 #38 SLが設定されていない(=0)場合、TPも=0となります。 すべてのポジション、すべてのタイプでTrawl=50pips。 トレーリングは互いに独立したポジションをリードすること 1000=pos1Buy で価格は1050で北上 トロールはpos1BuyのSLを置く。 価格はさらに北上し、1090に到達、pos1BuyのSLは1050のまま、pos2BuyのSLはなし。 価格は南下し、1050まで行き、両方のポジションがクローズされました。 SLでpos1だけクローズしたい pos2は 価格が1140に達したら、SLで クローズ する必要があります。 すなわち、1130で pos2のSLがあり、1140から1130を下 回る。 pos2のSLが発動するはず です。 поз2Buy--------------------------------------------------------------------------1080 SL---------------------------------------------------------------------------------1050 поз1Buy--------------------------------------------------------------------------1000 Aleksey 2011.10.31 13:05 #39 注文を開くときに、Time[0]または何か他のもの、日付、時間などに設定することができます)。 を取ります。 level_ts - トレーリングストップ,ポイント単位. level_step - 末尾のステップ. mn - Magik, もし -1 ならば,すべてのオーダーを検索します. //+----------------------------------------------------------------------------+ //| TrailingStop. | //| траллит все ордера, на уровень выставленный во входных параметрах. | //+----------------------------------------------------------------------------+ void TrailingStop(int level_ts, int level_step = 5, int mn = -1) { int ot, err, quantity_orders, cx; bool fm; double op, as, bd, pt, sl, tp, ut; //---- quantity_orders = OrdersTotal(); if(quantity_orders >= 0) { for(cx = 0; cx < quantity_orders; cx++) { if(!OrderSelect(cx, SELECT_BY_POS, MODE_TRADES)) { Print("Error: SimpleTrailing(), OrderSelect: " + cx + ". Ошибка: " + GetLastError()); } if (mn < 0 || OrderMagicNumber()==mn) { pt = MarketInfo(OrderSymbol(), MODE_POINT); bd = MarketInfo(OrderSymbol(), MODE_BID); as = MarketInfo(OrderSymbol(), MODE_ASK); op = OrderOpenPrice(); ot = OrderType(); sl = OrderStopLoss(); tp = OrderTakeProfit(); ut = level_ts + level_step; if(ot == OP_BUY) { if(sl == 0 || sl < op) { // если стопа нет или стоп ниже цены открытия if(op < (bd - ut * pt)) { // если цена открытия ниже чем текущая цена минус ( стоп - шаг стопа) sl = bd - level_ts * pt; } } else { if(sl < (bd - ut * pt) && bd > (op + ut * pt)) { sl = bd - level_ts * pt; } } } if(ot == OP_SELL) { if(sl == 0 || sl > op) { if(op > (as + ut * pt)) { sl = as + level_ts * pt; } } else { if(sl > (as + ut * pt) && as < (op - ut * pt)) { sl = as + level_ts * pt; } } } if (sl != OrderStopLoss()) { op = NormalizeDouble(op, Digits); tp = NormalizeDouble(tp, Digits); sl = NormalizeDouble(sl, Digits); fm = OrderModify(OrderTicket(), op, sl, tp, 0, CLR_NONE); if (fm) { if (UseSound) PlaySound(NameFileSound); } else { err=GetLastError(); Print("Error(",err,") SimpleTrailing(): ",ErrorDescription(err)); } } } } } } Avals 2011.10.31 13:06 #40 charony: SLが設定されていない(=0)場合、TPも=0となります。 すべてのポジション、すべてのタイプでTrawl=50pips。 トレーリングは互いに独立したポジションをリードすること 1000=pos1Buy で価格は1050で北上 トロールはpos1BuyのSLを置く。 価格はさらに北上し、1090に到達、pos1BuyのSLは1050のまま、pos2BuyのSLはなし。 価格は南下し、1050まで行き、両方のポジションがクローズされました。 SLでpos1だけクローズしたい pos2は 価格が1140に達したら、SLで クローズ する必要があります。 すなわち、1130で pos2のSLがあり、1140から1130を下 回る。 pos2のSLが発動するはず です。 поз2Buy--------------------------------------------------------------------------1080 SL---------------------------------------------------------------------------------1050 поз1Buy--------------------------------------------------------------------------1000 を交換する必要があります。 if (NormalizeDouble(SL,Digits)<// Если ниже желаемого.. NormalizeDouble(Bid-TS,Digits)) で if (NormalizeDouble(SL,Digits)<// Если ниже желаемого.. NormalizeDouble(Bid-TS,Digits) && (Bid>=Price+TS)) 売りも同じです。 123456789 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
2sellでは、トロールはSLを850にするはずだった。
マニュアルトレードではなく、950で寄り付きました。
コード上ではどのように解決できるのでしょうか?
なぜ、そんなことをするのだろう?価格が899にしか到達していない場合、トロールは50ピップス先にあり、したがって950付近のどこかにあるはずです。
1sellからSLでクローズした。
知らない人はいない
あなたはおそらく、価格がポジションのオープン価格から 少なくともXピップス(例えば100)右側に移動したときにのみ、ポジションのためのトラールが有効になるようにしたいですか?もしそうなら、それはtrall関数に追加された1行のコードです。
100ポイント行ったら-50ポイント、さらに100ポイント行ったら-50ポイントで再びトラール、といった具合に、建値からXポイント経過した時点でトラールを発動させる方法もあります。
例えば、ポジションのオープン価格から少なくともXポイント(例えば100)だけ価格が必要な方向に動いたときにのみ、ポジションのトロールを有効にする必要があるのではないでしょうか?もしそうなら、それはtrall関数に追加された1行のコードです。
また、始値からXポイント経過するとトロールが発動するというバリエーションもあり、100p通過でトロール-50p、さらに100p通過で再びトロール-50p、などです。
私は、特定のイベントでトロールがオンになるように設定しています。
片方のポジションが開いても問題ありません。
2つ以上のポジションを開いている場合、trawlは1つのSLだけを表示します。
いずれかのポジションがSLに到達すれば
このタイプのポジションはすべてクローズされます。
トレーラーは1種類のポジションを保持する必要がある
単独で
私はそのようにしています。つまり、特定のイベントでトロールのスイッチが入ります。
ポジションが1つでも空いていれば問題ありません。
2つ以上のポジションをオープンした場合、トロールは1つのSLを設定するだけです。
いずれかのポジションがSLに到達したとき
このタイプのポジションはすべてクローズされます。
ストップロスはすべてのポジションで最終価格からTralingStop ポイントに同じように設定され、オープンポジションの 方向にのみ動きます。つまり、すべてのポジションについて、買いトレールは保有期間の 最大値から 設定され、もちろん最大値は共通となるため、すべて同時にクローズされます。同じ種類のポジションを互いに独立して閉じる」アルゴリズムとは何か、必要なものを考えてみてください。バリエーションが多いですね。
SLが設定されていない(=0)場合、TPも=0となります。
すべてのポジション、すべてのタイプでTrawl=50pips。
トレーリングは互いに独立したポジションをリードすること
1000=pos1Buy で価格は1050で北上 トロールはpos1BuyのSLを置く。
価格はさらに北上し、1090に到達、pos1BuyのSLは1050のまま、pos2BuyのSLはなし。
価格は南下し、1050まで行き、両方のポジションがクローズされました。
SLでpos1だけクローズしたい
pos2は 価格が1140に達したら、SLで クローズ する必要があります。
すなわち、1130で pos2のSLがあり、1140から1130を下 回る。
pos2のSLが発動するはず です。
поз2Buy--------------------------------------------------------------------------1080
SL---------------------------------------------------------------------------------1050
поз1Buy--------------------------------------------------------------------------1000
注文を開くときに、Time[0]または何か他のもの、日付、時間などに設定することができます)。
を取ります。
level_ts - トレーリングストップ,ポイント単位.
level_step - 末尾のステップ.
mn - Magik, もし -1 ならば,すべてのオーダーを検索します.
SLが設定されていない(=0)場合、TPも=0となります。
すべてのポジション、すべてのタイプでTrawl=50pips。
トレーリングは互いに独立したポジションをリードすること
1000=pos1Buy で価格は1050で北上 トロールはpos1BuyのSLを置く。
価格はさらに北上し、1090に到達、pos1BuyのSLは1050のまま、pos2BuyのSLはなし。
価格は南下し、1050まで行き、両方のポジションがクローズされました。
SLでpos1だけクローズしたい
pos2は 価格が1140に達したら、SLで クローズ する必要があります。
すなわち、1130で pos2のSLがあり、1140から1130を下 回る。
pos2のSLが発動するはず です。
поз2Buy--------------------------------------------------------------------------1080
SL---------------------------------------------------------------------------------1050
поз1Buy--------------------------------------------------------------------------1000
を交換する必要があります。
で
売りも同じです。