MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1631 1...162416251626162716281629163016311632163316341635163616371638...1953 新しいコメント EVGENII SHELIPOV 2021.09.28 20:07 #16301 こんにちは!!! 助けてください。グリッドEAにトレーリングストップを追加しているのですが、今のところ最初の注文にのみ追加しています。トレイルはまだ発動していません。何が問題なのか? 以下は、単一注文をオープンするコードの一部です。 double JAW = iAlligator(Symbol(),TimeframesIndicators,13,8,5,8,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORJAW,0); double TEETH = iAlligator(Symbol(),TimeframesIndicators,13,8,5,8,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORTEETH,0); double LIPS = iAlligator(Symbol(),TimeframesIndicators,13,8,5,8,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORLIPS,0); double DI_PLUSCurrent=iADX(Symbol(),TimeframesIndicators,14, PRICE_CLOSE,MODE_PLUSDI,0); double DI_MINUSCurrent=iADX(Symbol(),TimeframesIndicators,14, PRICE_CLOSE,MODE_MINUSDI,0); double MacdCurrent=iMACD(Symbol(),TimeframesIndicators,12,26,9, PRICE_CLOSE,MODE_MAIN,0); double MacdPrevious=iMACD(Symbol(),TimeframesIndicators,12,26,9, PRICE_CLOSE,MODE_MAIN,2 ); double ATR = iATR(Symbol(), TimeframesVolatility, BarCount, 0); if (CountTrade() == 0) { if((UseHour==1&&Hour()>=StartTime&&Hour()<=StopTime)||UseHour==0) if(LIPS>TEETH&& TEETH>JAW&&DI_PLUSCurrent>18&&DI_PLUSCurrent>DI_MINUSCurrent&&MacdCurrent>MacdPrevious) { FirstLots = Lots(); tp = NormalizeDouble(Ask + TakeProfitFirstOrder*Point, Digits); ticket = OrderSend(Symbol(), OP_BUY, FirstLots, Ask, slip, 0, tp, "1-ый ордер", Magic, 0, Blue); { if(Bid - OrderOpenPrice() > TrailingStop*Point) Trailing(); } } if((UseHour==1&&Hour()>=StartTime&&Hour()<=StopTime)||UseHour==0) if(LIPS<TEETH&& TEETH<JAW&&DI_MINUSCurrent>18&&DI_MINUSCurrent>DI_PLUSCurrent&&MacdCurrent<MacdPrevious) { FirstLots = Lots(); tp = NormalizeDouble(Bid - TakeProfitFirstOrder*Point, Digits); ticket = OrderSend(Symbol(), OP_SELL, FirstLots, Bid, slip, 0, tp, "1-ый ордер", Magic, 0, Red); { if(OrderOpenPrice() - Ask > TrailingStop*Point) Trailing(); } } } 以下は、単品注文の場合の修正機能です。 //+----------------------------------------------------------------------------+ //| Трейлинг стоп одиночных ордеров | //+----------------------------------------------------------------------------+ void Trailing() { for(int i = OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if(OrderType() == OP_BUY) { if(Bid - OrderOpenPrice() > TrailingStop*Point || OrderStopLoss() == 0) { if(OrderStopLoss() < Bid - (TrailingStep + TrailingStop)*Point || OrderStopLoss() == 0) { if(!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Bid - TrailingStop*Point, Digits), tp, 0)) Print("Ошибка модификации ордера на покупку!"); } } } if(OrderType() == OP_SELL) { if(OrderOpenPrice() - Ask > TrailingStop*Point || OrderStopLoss() == 0) { if(OrderStopLoss() > Ask + (TrailingStep + TrailingStop)*Point || OrderStopLoss() == 0) { if(!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Ask + TrailingStop*Point, Digits), tp, 0)) Print("Ошибка модификации ордера на продажу!"); } } } } } } } ありがとうございます!!!! Tretyakov Rostyslav 2021.09.28 22:15 #16302 EVGENII SHELIPOV #:こんにちは!!!助けてください。グリッドEAにトレーリングストップを追加しているのですが、今のところ最初の注文にのみ追加しています。トレイルはまだ発動していません。何が問題なのか?以下は、単一注文をオープンするコードの一部です。以下は、単品注文の場合の修正機能です。ありがとうございます!!!! 注文がないときだけトロールに頼るのか...。 Valeriy Yastremskiy 2021.09.28 22:31 #16303 MakarFX #: 確かに、動作はするのですが...ドックにエラーがあります。 1345ビルドの多通貨モードは動作します)。10メジャーで確認したところ、10ペア全てからデータを取得し、好きなように描画してくれます)そしてテスターでボタンを押すこと) EVGENII SHELIPOV 2021.09.29 07:05 #16304 MakarFX #: 注文がないときだけトロールの呼び出しをするのか...。 変更なし void OnTick() { double JAW = iAlligator(Symbol(),TimeframesIndicators,13,8,5,8,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORJAW,0); double TEETH = iAlligator(Symbol(),TimeframesIndicators,13,8,5,8,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORTEETH,0); double LIPS = iAlligator(Symbol(),TimeframesIndicators,13,8,5,8,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORLIPS,0); double DI_PLUSCurrent=iADX(Symbol(),TimeframesIndicators,14, PRICE_CLOSE,MODE_PLUSDI,0); double DI_MINUSCurrent=iADX(Symbol(),TimeframesIndicators,14, PRICE_CLOSE,MODE_MINUSDI,0); double MacdCurrent=iMACD(Symbol(),TimeframesIndicators,12,26,9, PRICE_CLOSE,MODE_MAIN,0); double MacdPrevious=iMACD(Symbol(),TimeframesIndicators,12,26,9, PRICE_CLOSE,MODE_MAIN,2 ); double ATR = iATR(Symbol(), TimeframesVolatility, BarCount, 0); if (CountTrade() == 0) { if((UseHour==1&&Hour()>=StartTime&&Hour()<=StopTime)||UseHour==0) if(LIPS>TEETH&& TEETH>JAW&&DI_PLUSCurrent>18&&DI_PLUSCurrent>DI_MINUSCurrent&&MacdCurrent>MacdPrevious) { FirstLots = Lots(); tp = NormalizeDouble(Ask + TakeProfitFirstOrder*Point, Digits); ticket = OrderSend(Symbol(), OP_BUY, FirstLots, Ask, slip, 0, 0, "1-ый ордер", Magic, 0, Blue); } if((UseHour==1&&Hour()>=StartTime&&Hour()<=StopTime)||UseHour==0) if(LIPS<TEETH&& TEETH<JAW&&DI_MINUSCurrent>18&&DI_MINUSCurrent>DI_PLUSCurrent&&MacdCurrent<MacdPrevious) { FirstLots = Lots(); tp = NormalizeDouble(Bid - TakeProfitFirstOrder*Point, Digits); ticket = OrderSend(Symbol(), OP_SELL, FirstLots, Bid, slip, 0, 0, "1-ый ордер", Magic, 0, Red); } if (CountTrade() == 1) Trailing(); } Tretyakov Rostyslav 2021.09.29 07:31 #16305 EVGENII SHELIPOV #:変更なし 何も変わっていないじゃないか。 こうじゅつ if (CountTrade() == 1) Trailing(); が中に入っています。 if (CountTrade() == 0) amsgif80 2021.09.29 09:50 #16306 こんにちは、mt5のMoving Average-Expertで 片道取引(買いまたは売り)を追加することが可能かどうか教えてください。 Vladimir Karputov 2021.09.29 10:19 #16307 amsgif80 Moving Average-Expertで 片道取引のオプション(買いまたは売り)を追加することが可能かどうか教えてください。 Expert AdvisorのMQL5コードに書き込むと、このオプションが使えるようになります。 amsgif80 2021.09.29 10:54 #16308 Vladimir Karputov #:Expert AdvisorのMQL5コードに書き込むと、このオプションが使えるようになります。やってみたが、うまくいかなかった。私はこのビジネスでは完全にゼロです :( Tretyakov Rostyslav 2021.09.29 10:56 #16309 amsgif80 #: やってみたが、うまくいかなかった。私は全くの素人なので :( あなたの試みを見せてください... amsgif80 2021.09.29 10:56 #16310 amsgif80 #: やってみたが、うまくいかなかった。私はこの仕事について全くの素人です :( 挿入しようとしたコードはこれです。 コードの先頭にこれを投げる:enum ENUM_DIRECTION{DIRECTION_BUY = 0, // 買いのみDIRECTION_SELL = 1, // 唯一の販売DIRECTION_ANY = 2, // 買い&販売};入力 ENUM_DIRECTION inp_direction = DIRECTION_ANY; // 許可された取引の方向さらにコードで買うとどこに売って開く場所を見つけて ください。start() または OnTick() 関数の内部を見る条件に買いがある場合追加:if(inp_direction!=DIRECTION_SELL)条件に売りがある場合追加:if(inp_direction!=DIRECTION_BUY)です。 1...162416251626162716281629163016311632163316341635163616371638...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは!!!
助けてください。グリッドEAにトレーリングストップを追加しているのですが、今のところ最初の注文にのみ追加しています。トレイルはまだ発動していません。何が問題なのか?
以下は、単一注文をオープンするコードの一部です。
以下は、単品注文の場合の修正機能です。
ありがとうございます!!!!
こんにちは!!!
助けてください。グリッドEAにトレーリングストップを追加しているのですが、今のところ最初の注文にのみ追加しています。トレイルはまだ発動していません。何が問題なのか?
以下は、単一注文をオープンするコードの一部です。
以下は、単品注文の場合の修正機能です。
ありがとうございます!!!!
確かに、動作はするのですが...ドックにエラーがあります。
注文がないときだけトロールの呼び出しをするのか...。
変更なし
変更なし
何も変わっていないじゃないか。
こうじゅつ
if (CountTrade() == 1) Trailing();が中に入っています。
Expert AdvisorのMQL5コードに書き込むと、このオプションが使えるようになります。
Expert AdvisorのMQL5コードに書き込むと、このオプションが使えるようになります。
やってみたが、うまくいかなかった。私は全くの素人なので :(
やってみたが、うまくいかなかった。私はこの仕事について全くの素人です :(
挿入しようとしたコードはこれです。
コードの先頭にこれを投げる:
enum ENUM_DIRECTION{
DIRECTION_BUY = 0, // 買いのみ
DIRECTION_SELL = 1, // 唯一の販売
DIRECTION_ANY = 2, // 買い&販売
};
入力 ENUM_DIRECTION inp_direction = DIRECTION_ANY; // 許可された取引の方向
さらにコードで買うとどこに売って開く場所を見つけて ください。start() または OnTick() 関数の内部を見る
条件に買いがある場合追加:
if(inp_direction!=DIRECTION_SELL)
条件に売りがある場合追加:
if(inp_direction!=DIRECTION_BUY)です。