[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 118 1...111112113114115116117118119120121122123124125...631 新しいコメント Sceptic Philozoff 2012.05.12 03:59 #1171 alex12 さん、申し訳ありませんが、ブルドーザー(悪気はないのですが、一般的な用語です)のように見えます。いろいろなパーツを組み合わせて何かを作り、どうにかコンパイルするのですが、そのコードの意味が理解できないのです。 サービスに連絡する働く Artyom Trishkin 2012.05.12 05:17 #1172 alex12: エラーが大量に発生する Igor Kimの関数のいくつかを使用する場合、コンパイラが教えてくれるあなたのコードに、彼の不足している関数があることを確認してください。彼のブランチでそれらを見つけて、あなたのコードに書き込んでください。 Роман 2012.05.12 06:57 #1173 chief2000:... OrderOpenTime()はポジションがオープンされた時間を表示しますが、私の質問はSTOPオーダーが設定された時間を知るにはどうすればいいのでしょうか? MT4のレポートではこの時間になっていますが、コードから調べることは可能でしょうか? もう一度言います。 標準」サイクルですべてのストップオーダーを 調べ、自分自身のために、それらのOrderOpenTime()の値をアンプリントします - これは、それら(それぞれ)が設定された時間でなければなりません。以下は成行注文の例ですが、少し調整するか、この行を完全に削除してください。 if ((orderType != OP_BUY) && (orderType != OP_SELL)) continue; または、興味のあるストップオーダーのデータに置き換える...。 int orderCount = 0; // сбрасываем счетчик ордеров // ------------------------------------------------Считаем только наши ордера--------------------------- int orderType; for (orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--) { if (!OrderSelect(orderIndex, SELECT_BY_POS)) continue; // если ордер не выбран, то идем на следующий открытый if(OrderCloseTime()!=0) continue; // если тикет принадлежит закрытому ордеру, то берем следующий открытый if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != magic)) continue; orderType = OrderType(); if ((orderType != OP_BUY) && (orderType != OP_SELL)) continue; ticket = OrderTicket( ); // Номер ордера orderLots = OrderLots(); // Lots orderProfit = OrderProfit() + OrderSwap(); // Profit Price = OrderOpenPrice(); // Цена открытия рыночного ордера SL = OrderStopLoss(); // Значение StopLoss ордера TP = OrderTakeProfit(); // Значение TakeProfit ордера Time = O rderOpenTime(); orderCount++; // считаем ордера (не больше i) } Oleg 2012.05.12 11:55 #1174 Roman.: もう一度言います。標準」ループですべてのストップオーダーを調べ、自分自身のために、それらのOrderOpenTime()の値をアンプリントします - これは、それら(それぞれ)が設定された時間でなければなりません。以下は成行注文の例ですが、少し調整するか、この行を完全に削除してください。 if ((orderType != OP_BUY) && (orderType != OP_SELL)) continue; または、興味のある逆指値注文のデータに置き換える...。 ここで、この段階でジレンマが発生しました。ある「統計」のためにSTOPオーダーを開く時間が必要で、このプロセスを常に実行するのではなく、ある最終段階でだけ実行するようにしたいのです。そのため、その時点でオープンしている注文を検索する(OrdersTotal())のではなく、すでにクローズしている注文の中から検索する => OrdersHistoryTotal()となります。 しかし、すでに決済されているSTOP注文の場合、OrderOpenTime()は注文が発注された時刻ではなく、ポジションが開始された時刻を 返します。 結果、こうなりました。OrdersHistoryTotal()のリストから、STOP注文が成立した時刻を取り出すことは可能でしょうか? Роман 2012.05.12 12:22 #1175 chief2000: ここでジレンマに陥りました。ある「統計」のためにSTOP注文の開始時間が必要なのですが、この処理を常時実行するのではなく、ある最終段階でのみ実行するようにしたいのです。そのため、その時点でオープンしている注文を検索する(OrdersTotal())のではなく、すでにクローズしている注文の中から検索する => OrdersHistoryTotal()となります。 しかし、すでに決済されているSTOP注文の場合、OrderOpenTime()は注文が発注された時刻ではなく、ポジションが開始された時刻を返します。 結果、こうなりました。OrdersHistoryTotal()のリストから、STOP注文が設定された時刻を取り出すことは可能でしょうか? そうですね...課題は...わからない。できないようです。特に「最終段階」では...。 このプロセスを常に監視し、記録しておく必要があります。前ページのFAQの投稿を参照してください。 Oleg 2012.05.12 12:49 #1176 Roman.:そうですね...課題は...わからない。できないようです。特に「最終段階」では...。 このプロセスを常に監視し、追跡する必要があります。前ページのFAQの投稿を参照してください。 他に解決策が見つからない場合は、OrdersTotal() からの注文を使用することにします。 とにかくありがとうございました。 Рустам 2012.05.12 12:59 #1177 その場合、ファイルへの書き込みが簡単で、手間もかからず、端末ではなく、必要な統計情報を整理することができます。 Oleg 2012.05.12 15:08 #1178 FAQ: その場合、ファイルに書き込むのが簡単で、手間もかからず、統計もターミナルではなく、必要なように整理することができます。 ありがとうございました。 Kilnart 2012.05.12 16:43 #1179 挟み撃ちパターンでExpert Advisorを書きたい のですが、どうすればいいですか? 私が選んだのは Low2=Low[iLowest(NULL,0,MODE_LOW,10,2)] High2=High[iHighest(NULL,0,MODE_HIGH,10,2)] if(Low[1]==Low2) bull_pincet=true; if(High[1]==High2) bear_pincet=true; while(true) { if(Total==0 && bull_pincet==true) { sl=Low[1]; if(sl<Step)sl=Step; tp=Ask+((Ask-sl)*k); OrderSend(Symb,OP_BUY,Lts,Ask,3,sl,tp); return; } if(Total==0 && bear_pincet==true) { sl=High[1]; if(sl<Step)sl=Step; tp=Bid-((sl-Bid)*k); OrderSend(Symb,OP_SELL,Lts,Bid,3,sl,tp); return; } break; } 残念ながら、私の場合、'sl' が 100.00000 に設定され、'tp' がエラーを表示しているため、条件が間違っています。 1ティックを考慮する条件を追加することにしました。 static datetime TimeSaveH1 = 0; int init() { TimeSaveH1 = iTime( Symbol(), Period(), 0); // берем открытия время текущего бара } int start() { if (TimeSaveH1!=iTime( Symbol(), Period(), 0)) { TimeSaveH1=iTime( Symbol(), Period(), 0); } Low2=Low[iLowest(NULL,0,MODE_LOW,10,2)] High2=High[iHighest(NULL,0,MODE_HIGH,10,2)] if(Low[1]==Low2 && TimeSaveH1===iTime( Symbol(), Period(), 0) bull_pincet=true; if(High[1]==High2 && TimeSaveH1===iTime( Symbol(), Period(), 0) bear_pincet=true; while(true) { if(Total==0 && bull_pincet==true) { sl=Low[1]; if(sl<Step)sl=Step; tp=Ask+((Ask-sl)*k); OrderSend(Symb,OP_BUY,Lts,Ask,3,sl,tp); return; } if(Total==0 && bear_pincet==true) { sl=High[1]; if(sl<Step)sl=Step; tp=Bid-((sl-Bid)*k); OrderSend(Symb,OP_SELL,Lts,Bid,3,sl,tp); return; } break; } } 結果は同じです。 Alekseu Fedotov 2012.05.12 17:05 #1180 kilnart: PincerパターンでExpert Advisorを書きたいのですが、どうすればいいですか? 私が選んだのは 残念ながら、私の場合、'sl' が 100.00000 に設定され、'tp' がエラーを表示しているため、条件が間違っています。 1ティックを考慮する条件を追加することにしました。 結果は同じです。 どうすれば正しく解決できますか? Step=100という変数があるのですね。もしそうなら、さらにコードの中で何が得られるか見てみましょう。 1...111112113114115116117118119120121122123124125...631 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
alex12 さん、申し訳ありませんが、ブルドーザー(悪気はないのですが、一般的な用語です)のように見えます。いろいろなパーツを組み合わせて何かを作り、どうにかコンパイルするのですが、そのコードの意味が理解できないのです。
サービスに連絡する働く
エラーが大量に発生する
...
OrderOpenTime()はポジションがオープンされた時間を表示しますが、私の質問はSTOPオーダーが設定された時間を知るにはどうすればいいのでしょうか?
MT4のレポートではこの時間になっていますが、コードから調べることは可能でしょうか?
もう一度言います。
標準」サイクルですべてのストップオーダーを 調べ、自分自身のために、それらのOrderOpenTime()の値をアンプリントします - これは、それら(それぞれ)が設定された時間でなければなりません。以下は成行注文の例ですが、少し調整するか、この行を完全に削除してください。
if ((orderType != OP_BUY) && (orderType != OP_SELL)) continue;
または、興味のあるストップオーダーのデータに置き換える...。
もう一度言います。標準」ループですべてのストップオーダーを調べ、自分自身のために、それらのOrderOpenTime()の値をアンプリントします - これは、それら(それぞれ)が設定された時間でなければなりません。以下は成行注文の例ですが、少し調整するか、この行を完全に削除してください。
if ((orderType != OP_BUY) && (orderType != OP_SELL)) continue;
または、興味のある逆指値注文のデータに置き換える...。
しかし、すでに決済されているSTOP注文の場合、OrderOpenTime()は注文が発注された時刻ではなく、ポジションが開始された時刻を 返します。
結果、こうなりました。OrdersHistoryTotal()のリストから、STOP注文が成立した時刻を取り出すことは可能でしょうか?
ここでジレンマに陥りました。ある「統計」のためにSTOP注文の開始時間が必要なのですが、この処理を常時実行するのではなく、ある最終段階でのみ実行するようにしたいのです。そのため、その時点でオープンしている注文を検索する(OrdersTotal())のではなく、すでにクローズしている注文の中から検索する => OrdersHistoryTotal()となります。
しかし、すでに決済されているSTOP注文の場合、OrderOpenTime()は注文が発注された時刻ではなく、ポジションが開始された時刻を返します。
結果、こうなりました。OrdersHistoryTotal()のリストから、STOP注文が設定された時刻を取り出すことは可能でしょうか?
そうですね...課題は...わからない。できないようです。特に「最終段階」では...。
このプロセスを常に監視し、記録しておく必要があります。前ページのFAQの投稿を参照してください。
そうですね...課題は...わからない。できないようです。特に「最終段階」では...。
このプロセスを常に監視し、追跡する必要があります。前ページのFAQの投稿を参照してください。
とにかくありがとうございました。
その場合、ファイルに書き込むのが簡単で、手間もかからず、統計もターミナルではなく、必要なように整理することができます。
挟み撃ちパターンでExpert Advisorを書きたい のですが、どうすればいいですか?
私が選んだのは
残念ながら、私の場合、'sl' が 100.00000 に設定され、'tp' がエラーを表示しているため、条件が間違っています。
1ティックを考慮する条件を追加することにしました。
結果は同じです。
PincerパターンでExpert Advisorを書きたいのですが、どうすればいいですか?
私が選んだのは
残念ながら、私の場合、'sl' が 100.00000 に設定され、'tp' がエラーを表示しているため、条件が間違っています。
1ティックを考慮する条件を追加することにしました。
結果は同じです。 どうすれば正しく解決できますか?
Step=100という変数があるのですね。もしそうなら、さらにコードの中で何が得られるか見てみましょう。