初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 20 1...131415161718192021222324252627...260 新しいコメント Yaroslav Nykula 2016.12.02 14:18 #191 Vitalie Postolache: もう一度言います。オーダーを扱うときは、OrderSelect が最初に 来るようにしなければならない。それから、他のすべて。 返信ありがとうございました.if(OrderSelect(i=0;i<accTotal;i++)==true) という行が正しく書かれていない、またはコードの間違った 場所にあるということでしょうか? Vitalie Postolache 2016.12.02 14:20 #192 bablusut: 返信ありがとうございました.if(OrderSelect(i=0;i<accTotal;i++)==true) という行が正しく書かれていない、またはコードの間違った場所に あるということでしょうか?... そこに詳細を追記しました。 atik441 2016.12.02 14:27 #193 Renat Akhtyamov: по ссылке пройдите, она у Вас в посте выделена.すでに見ていますが、必要な情報がありません。 空のバッファに10桁の値、シグナルがあるときの価格の値...。mql4のコードでは、バッファ内の値の有無はどのように表現されるのですか?(何度も使っているのに忘れた.)if( iCustom(NULL,t, "T...c",1,b) != .......). Vitalie Postolache 2016.12.02 14:29 #194 atik441:уже смотрел. нет там нужной информации .в пустом буфере 10и значное значение а при наличии сигнала - значение цены... и как в коде mql4 обозначается отсутствие или наличие значения в буфере ? (пользовался не раз ,да забыл ...) if( iCustom(NULL,t, "T...c",1,b) !=EMPTY_VALUE) ・・・・・・・・・・・・・・。 atik441 2016.12.02 14:32 #195 Vitalie Postolache:if( iCustom(NULL,t, "T...c",1,b) !=EMPTY_VALUE) ...必要なもの..............................................。ご指摘ありがとうございます。 BORIS GOLICIN 2016.12.02 15:34 #196 理解を助ける。異なる方向性を持つ2つの注文が ある場合、順次実行 することは可能ですか? オープントレードは、まず、いずれかのトレードのTPをトリガーし、その後、唯一のSLは、取引の過程で、SLレベルであるがトレードのどれが先に成立したのでしょうか? Renat Akhtyamov 2016.12.02 17:10 #197 ganri:理解を助ける。異なる方向性を持つ2つの注文が ある場合、順次実行 することは可能ですか? オープントレードは、まず、いずれかのトレードのTPをトリガーし、その後、唯一のSLは、取引の過程で、SLレベルですがトレードのどれが先に成立したのでしょうか? アナライズアスク/ビッド Yaroslav Nykula 2016.12.02 17:20 #198 Vitalie Postolache:もう一度言います。オーダーを扱うときは、OrderSelect が最初に 来るようにしなければならない。そして、その他もろもろ。順序評価のループで動作させる場合、動作の順序は次のようになります。1.チェック if(OrderSelect())2.正しい注文かどうかを確認するため、通常はシンボルとマジックナンバーを確認し、次にタイプを確認します if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) - この場合、現在のシンボルで指定されたマジックナンバーの成行き注文のみが処理されます。OrderComment()、OrderProfit()などの他のデータの処理。こんな感じでしょうか。 for(int i=OrdersHistoryTotal()-1; i>=0; i--) //перебираем историю торгов { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //если ордер выбран то работаем дальше, иначе смысла нет { if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) //Если ордер тот, что нам нужен (эту проверку можно и опустить, если нужно обработать все ордера в истории) { if(StringFind(OrderComment(),"[tp]",0)>-1) //если найден признак закрытия профитом Print("Order #",OrderTicket()," profit: ", OrderTakeProfit()); if(StringFind(OrderComment(),"[sl]",0)>-1) //если найден признак закрытия стоплосс Print("Order #",OrderTicket()," loss: ", OrderTakeProfit()); } } }ご返信ありがとうございます.そこで、取引履歴から注文を検索するために、関数OrdersHistoryTotalを 使用します。これは、不要なものをすべて削除すると、次のようになります。for(int i=OrdersHistoryTotal()-1; i>=0; i--) // - ここで質問ですが、我々が破棄した関数テンプレートの「accTotal」は どういう意味ですか?また、なぜテンプレートのように「i++」ではなく「i--」 としたのでしょうか? - 2番目の関数OrderComment は、前の関数OrdersHistoryTotal によって選択された場合、選択されたオーダーのコメントを返し、次のような形式になる。if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //- ここで、"i", これは 前の関数から"i>=0" で 、 "SELECT_BY_TICKET" は "SELECT_BY_POS" で置き換えられ、 "MODE_HISTORY" が 追加さ れた- なぜ?- 3行目は定義ですが、この履歴にはTPとSLによって閉じられた成行注文しかないので、実際には必要な注文をチェックする必要はありません(閉じられた保留中の注文があるかもしれませんが、それは稀でしょう)、他のすべての注文パラメータは私たちにとって重要ではありません。ただ、履歴の中のクローズドオーダーの量がどんどん増えていくのですが、全部ではなく、例えば5~10件など、一定量の最後のオーダーを再計算することは可能でしょうか。- 最後の4行は非常に明確です。唯一の問題はPlaySound関数についてで、そのコードは次のフォームの各「Print("..."」 行の後に挿入する必要があります。 bool PlaySound()文字列 // ファイル名 );...それとも、これも何らかの方法で変換されているのでしょうか? Vitalie Postolache 2016.12.02 18:04 #199 bablusut: ループについて、ループがどのように制限されているか、ループがどのように機能するか、一般的に、初心者向けのC++の教科書を読むと良いでしょう、C++はMQLと非常に似ています、唯一の違いは取引関数です。また、 MQLのチュートリアルや コンパイラのヘルプも読んでみてください。 フォーラムの記事は、ウィンドウの上の枠にある青い背景のところにあります。掲示板で講座の全容を語り、説明することはできません。 Учебник по MQL4 book.mql4.com Учебник по MQL4 Yaroslav Nykula 2016.12.02 19:17 #200 Vitalie Postolache:ループについて、ループがどのように制限されているか、ループがどのように機能するか、一般的に、初心者向けのC++の教科書を読むといいでしょう、C++はMQLと非常に似ています、唯一の違いは、取引関数です。また、 MQLのチュートリアルや コンパイラのヘルプも読んでみてください。 フォーラムの記事は、ウィンドウの上の枠にある青い背景のところにあります。掲示板で講座の全容を語り、説明することはできません。ヴィタリー・ポストラッシュ さん、ありがとうございました!6歳の誕生日に教科書を全部読むなんて遅すぎるよ~、そんなに勉強できないよ、もっと早くやればよかったけど時間が なかったんだよ。ここで本当に退屈させてしまった、ごめん、もう迷惑かけないよ。 1...131415161718192021222324252627...260 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
もう一度言います。オーダーを扱うときは、OrderSelect が最初に 来るようにしなければならない。それから、他のすべて。
返信ありがとうございました.if(OrderSelect(i=0;i<accTotal;i++)==true) という行が正しく書かれていない、またはコードの間違った場所に あるということでしょうか?...
Renat Akhtyamov:
по ссылке пройдите, она у Вас в посте выделена.
すでに見ていますが、必要な情報がありません。 空のバッファに10桁の値、シグナルがあるときの価格の値...。mql4のコードでは、バッファ内の値の有無はどのように表現されるのですか?(何度も使っているのに忘れた.)
if( iCustom(NULL,t, "T...c",1,b) != .......).
atik441:уже смотрел. нет там нужной информации .в пустом буфере 10и значное значение а при наличии сигнала - значение цены... и как в коде mql4 обозначается отсутствие или наличие значения в буфере ? (пользовался не раз ,да забыл ...)
if( iCustom(NULL,t, "T...c",1,b) !=EMPTY_VALUE) ...必要なもの..............................................。ご指摘ありがとうございます。
理解を助ける。異なる方向性を持つ2つの注文が ある場合、順次実行 することは可能ですか?
オープントレードは、まず、いずれかのトレードのTPをトリガーし、その後、唯一のSLは、取引の過程で、SLレベルであるが
トレードのどれが先に成立したのでしょうか?
理解を助ける。異なる方向性を持つ2つの注文が ある場合、順次実行 することは可能ですか?
オープントレードは、まず、いずれかのトレードのTPをトリガーし、その後、唯一のSLは、取引の過程で、SLレベルですが
トレードのどれが先に成立したのでしょうか?
もう一度言います。オーダーを扱うときは、OrderSelect が最初に 来るようにしなければならない。そして、その他もろもろ。
順序評価のループで動作させる場合、動作の順序は次のようになります。
1.チェック if(OrderSelect())
2.正しい注文かどうかを確認するため、通常はシンボルとマジックナンバーを確認し、次にタイプを確認します if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) - この場合、現在のシンボルで指定されたマジックナンバーの成行き注文のみが処理されます。
OrderComment()、OrderProfit()などの他のデータの処理。
こんな感じでしょうか。
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //если ордер выбран то работаем дальше, иначе смысла нет
{
if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) //Если ордер тот, что нам нужен (эту проверку можно и опустить, если нужно обработать все ордера в истории)
{
if(StringFind(OrderComment(),"[tp]",0)>-1) //если найден признак закрытия профитом
Print("Order #",OrderTicket()," profit: ", OrderTakeProfit());
if(StringFind(OrderComment(),"[sl]",0)>-1) //если найден признак закрытия стоплосс
Print("Order #",OrderTicket()," loss: ", OrderTakeProfit());
}
}
}
ご返信ありがとうございます.そこで、取引履歴から注文を検索するために、関数OrdersHistoryTotalを 使用します。これは、不要なものをすべて削除すると、次のようになります。
for(int i=OrdersHistoryTotal()-1; i>=0; i--) // - ここで質問ですが、我々が破棄した関数テンプレートの「accTotal」は どういう意味ですか?また、なぜテンプレートのように「i++」ではなく「i--」 としたのでしょうか?
- 2番目の関数OrderComment は、前の関数OrdersHistoryTotal によって選択された場合、選択されたオーダーのコメントを返し、次のような形式になる。
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //- ここで、"i", これは 前の関数から"i>=0" で 、 "SELECT_BY_TICKET" は "SELECT_BY_POS" で置き換えられ、 "MODE_HISTORY" が 追加さ れた- なぜ?
- 3行目は定義ですが、この履歴にはTPとSLによって閉じられた成行注文しかないので、実際には必要な注文をチェックする必要はありません(閉じられた保留中の注文があるかもしれませんが、それは稀でしょう)、他のすべての注文パラメータは私たちにとって重要ではありません。ただ、履歴の中のクローズドオーダーの量がどんどん増えていくのですが、全部ではなく、例えば5~10件など、一定量の最後のオーダーを再計算することは可能でしょうか。
- 最後の4行は非常に明確です。唯一の問題はPlaySound関数についてで、そのコードは次のフォームの各「Print("..."」 行の後に挿入する必要があります。
bool PlaySound()
文字列 // ファイル名
);
...それとも、これも何らかの方法で変換されているのでしょうか?
ループについて、ループがどのように制限されているか、ループがどのように機能するか、一般的に、初心者向けのC++の教科書を読むと良いでしょう、C++はMQLと非常に似ています、唯一の違いは取引関数です。
また、 MQLのチュートリアルや コンパイラのヘルプも読んでみてください。 フォーラムの記事は、ウィンドウの上の枠にある青い背景のところにあります。掲示板で講座の全容を語り、説明することはできません。
ループについて、ループがどのように制限されているか、ループがどのように機能するか、一般的に、初心者向けのC++の教科書を読むといいでしょう、C++はMQLと非常に似ています、唯一の違いは、取引関数です。
また、 MQLのチュートリアルや コンパイラのヘルプも読んでみてください。 フォーラムの記事は、ウィンドウの上の枠にある青い背景のところにあります。掲示板で講座の全容を語り、説明することはできません。