とても役に立つ。ありがとう。
スティーブン
末尾の例はエラーで失敗する。
プログラマーの皆さん、mql5について教えてください!
mql4と同じように、何のクラスも使わずに普通のトレーリング関数を使用することは可能でしょうか?例えば、TradeSizeOptimised関数がMoving Averages.mq5で実装されているように。
例題、記事、フォーラムなど、あらゆるものを探しましたが、何も見つかりませんでした。もう完全に迷ってしまいました...。もしかしたら、どなたか準備のできたバリアントを持っているかもしれません。
プログラマーの皆さん、mql5について教えてください!
mql4と同じように、何のクラスも使わずに普通のトレーリング関数を使用することは可能でしょうか?例えば、TradeSizeOptimised関数がMoving Averages.mq5で実装されているように。
例題、記事、フォーラムなど、あらゆるものを探しましたが、何も見つかりませんでした。もう完全に迷ってしまいました...。もしかしたら、どなたか準備のできたバリアントをお持ちかもしれません。
どうぞ
int TrailingStop() { if(PositionSelect(Symbol())) // ポジションを選択 { //MqlTradeRequest m_request;// サーバへのリクエストの構造を宣言する //MqlTradeResult m_result;// サーバーレスポンス構造体の宣言 double Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID); // 入札価格を変数に書き込む double Ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK); // アスク価格に書き込む double OpenPrice=PositionGetDouble(POSITION_PRICE_OPEN); // ポジションの始値を変数に書き込む double PositionSL=PositionGetDouble(POSITION_SL); // ストップ・ロス・レベルを変数に書き込む double PositionTP=PositionGetDouble(POSITION_TP); // 利益確定レベルを変数に書き込む if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) // ポジションタイプを定義する { if(TrailWhileMinus==true || Bid-OpenPrice>_Point*Trail) // 最初の移籍で損益分岐点に達するまで、トロールはしない。 { if(Bid-PositionSL>Trail*_Point) //ストップ・ロスの移動が必要であることの基本条件。 { //--- 構造体にデータを書き込む request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Bid-Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // リクエストをサーバーに送信する } } } else { if(TrailWhileMinus==true || OpenPrice-Ask>_Point*Trail) // 最初の移籍で損益分岐点に達するまで、トロールはしない。 { if(PositionSL-Ask>Trail*_Point) //ストップ・ロスの移動が必要であることの基本条件。 { //--- 構造体にデータを書き込む request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Ask+Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // リクエストをサーバーに送信する } } } } return(0); }
どうぞ
私は(おそらく理由がないわけではないが)resultはパラメータとして渡した方がいいと考えている :)
そうでないと、分析しようがない。なんとなく良くないですね...。
追記
TrailingStopBuyとTrailingStopSellの2つの関数も作ります。
私は(おそらく理由がないわけではないが)、結果はパラメータとして渡したほうがいいと考えている :)
そうでなければ、分析する方法がない。なんとなく良くないですね...。
追記
私ならTrailingStopBuyとTrailingStopSellの2つの関数を作ります。
まあ、彼はすでに普通の末尾を書く方法を彼の脳を作ったので、私は、男に例を与え、その後、彼は少し考えてみましょう、それは原則的にテスターで、エラーなしで動作し、このデザインは正常に動作します。
お待たせしました。
sergey1294 です、
本当にありがとう!
もう一つ小さな疑問があるのですが、マジックナンバーによるチェックを関数に追加する方法を教えてください。私はそのようなチェックを挿入しようとしています:
if (OrderGetInteger(ORDER_MAGIC)==EA_Magic) { ..... }..... but something it breaks the whole trade.....
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 独自のトレーリングストップ注文を作成する方法 はパブリッシュされました:
トレーダーの基本原則 - 利得を増やし、損失を削る!この論説では基本技術の一つ、この原則に従うことを可能にする - 保護的停止レベル (ストップ・ロスレベル) をポジションの利得が増大した時点で動かす、すなわちトレーリングストップレベルを考察する。ここではSAR と NRTR インジケーターに基づいてトレーリングストップをするためのクラスを作成する手続きをステップを追って示す。誰でもこのトレーリングストップをそのエキスパートに挿入し、あるいは独立にそれをそのアカウントのポジションを制御するために使用することができる。
作者: Dmitry Fedoseev