MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 660 1...653654655656657658659660661662663664665666667...1953 新しいコメント Algotrader18 2018.10.12 19:52 #6591 Igor Makanu:このコードが機能するように、類推してやってください。最小限の変更 - OrderMagicNumber()解析を削除し、3つのログを追加しました。 結果は、残念ながら同じです。prをご覧ください。- 最初のスクリーンショットでは、始まりがあり(なぜ0から始まらないのか不明)、2枚目のスクリーンショットでは、124から99で始まっているところです。 int NumberOfOrders(){ int i,res=0,k=OrdersTotal(); string sy=Symbol(); for(i=0;i<k; i++){ log("k = " + k +"; "); log("i = " + i +"; "); if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))の場合{ if((OrderSymbol()==sy)) res++; //if((OrderMagicNumber()==magic_))のようになります。&& (OrderSymbol()==sy)) res++; log("res = " + res +"; "); }} return(res);}. ファイル: test_1.png 6 kb test_2.png 6 kb Algotrader18 2018.10.12 20:08 #6592 Alexey Viktorov: このコードは本当にエラーなくコンパイルできるのでしょうか?信じられない... なぜ、疑うのですか?いずれにせよ、MQL4ではエラーは発生しません。 Igor Makanu 2018.10.12 20:46 #6593 Algotrader18:(0から始まらない理由は不明)、124から99になる2箇所目について。Print()の一部を端末が「食べた」ため、MQLの出力は最も低い優先度になっています。Print()の 前にSlepp(123)を追加すれば、スキップは発生しません。 ログによると、ループカウンターを表示しているだけですが Algotrader18 2018.10.12 22:27 #6594 Igor Makanu:Print()のターミナルが「食べた」部分なので、MQLでは出力の優先順位が最も低く、Print()の前にSlepp(123)を追加すればスキップは発生しません。ログによると、ループカウンターを表示しているだけですが とても興味深いのですが、もう少し具体的に教えてください。この「食べる」という作業は、どのように行われるのでしょうか? ご返信からは、私が「食べた」印象を受けます。それは単にもっと重要なことがあったのでログに入れなかっただけですが、私の本当の仕事はすべての注文を調べて特定のものを削除することで、EAがその一部をスキップしている(これは最も低い優先度で情報を出力して いない)ことに気付きました。私は理由を理解するためにタスクを簡素化し、その結果、我々はログに出力のみを持っていますが、私はまだ省略された順序、すなわち、Expert Advisorは、いくつかの順序を飛び越える参照してください。 最低注文優先度は0からではない開始出力をよく説明しますが、それは、例えば、124から99にジャンプすると矛盾した出力を説明できる方法を示します。 もし、"食べた "というのが別の意味だとしたら、何を意味するのか理解したい。 ファイル: test_2.png 6 kb Roman Sharanov 2018.10.13 00:15 #6595 neverness:すごいなー。 ローマン! 例えば私は、20年の経験を持つトレーダーとして成功しています。 なぜ「エントリーしたペアの終値と その移動平均の 差」が必要なのか理解できません。 さらに、この差分を移動平均にする方法をご存知でしょうか?- ファンタスティック! 単純に相場の移動平均を描けばいいのか?- また、違うのか? で、何が問題なんだ?終値平均の差は終値平均の差にあらず、嗚呼、嗚呼 Alexey Viktorov 2018.10.13 05:57 #6596 Algotrader18: 疑問点とは?とにかく、MQL4でエラーは出ない。1.コードの挿入 方法について説明します。 アルゴトレーダー18OrderMagicNumber()の解析を削除し、3つのログを追加するなど、最小限の変更を加えました。 結果は、残念ながら、同じです。- 1枚目のスクリーンショットでは冒頭(なぜ0から始まらないのかわからない)、2枚目では-124から99で始まるところです。 int NumberOfOrders() { int i,res=0,k=OrdersTotal(); string sy=Symbol(); for(i=0; i<k; i++) { log("k = " + k +"; "); log("i = " + i +"; "); if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if((OrderSymbol()==sy)) res++; //if((OrderMagicNumber()==magic_) && (OrderSymbol()==sy)) res++; log("res = " + res +"; "); } } return(res); } 2.logとは対数のこと? 備考 MathLog() の代わりに log() を使用することができます。 MathLog - Математические функции - Справочник MQL4 docs.mql4.com MathLog - Математические функции - Справочник MQL4 Alexey Viktorov 2018.10.13 06:06 #6597 Roman Sharanov:また、CopyClose()の呼び出しが 多すぎるという重大な欠点も発見しました。 通貨ペアの配列からループで気配値をコピーする方法を教えてください。 それはダブル配列の ように見えますが、MQLはそれをサポートしていません、%のように。 ダブルアレイとはどういう意味ですか? Roman Sharanov 2018.10.13 07:08 #6598 Alexey Viktorov:ダブル配列」とはどういう意味ですか?まあ、二次元ですね。 Alexey Viktorov 2018.10.13 08:05 #6599 Roman Sharanov:まあ二次元。CopyCloseが 2次元配列にデータをコピーすることはどこに書いてあるのですか?そもそも、なぜ2Dアレイの話が出たのでしょうか? Roman Sharanov 2018.10.13 08:31 #6600 Alexey Viktorov:CopyCloseが2次元配列にデータをコピーすることはどこに書いてあるのですか?なぜ2次元配列と言われたのですか?引用符を配列で格納する必要があるため ループ内で一旦コピーして、ArrayCopyで 計算を行うため、CloseCopyではなく 1...653654655656657658659660661662663664665666667...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
このコードが機能するように、類推してやってください。
最小限の変更 - OrderMagicNumber()解析を削除し、3つのログを追加しました。
結果は、残念ながら同じです。prをご覧ください。- 最初のスクリーンショットでは、始まりがあり(なぜ0から始まらないのか不明)、2枚目のスクリーンショットでは、124から99で始まっているところです。
int NumberOfOrders()
{
int i,res=0,k=OrdersTotal(); string sy=Symbol();
for(i=0;i<k; i++)
{
log("k = " + k +"; ");
log("i = " + i +"; ");
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))の場合
{
if((OrderSymbol()==sy)) res++; //if((OrderMagicNumber()==magic_))のようになります。&& (OrderSymbol()==sy)) res++;
log("res = " + res +"; ");
}
}
return(res);
}.
このコードは本当にエラーなくコンパイルできるのでしょうか?信じられない...
(0から始まらない理由は不明)、124から99になる2箇所目について。
Print()の一部を端末が「食べた」ため、MQLの出力は最も低い優先度になっています。Print()の 前にSlepp(123)を追加すれば、スキップは発生しません。
ログによると、ループカウンターを表示しているだけですが
Print()のターミナルが「食べた」部分なので、MQLでは出力の優先順位が最も低く、Print()の前にSlepp(123)を追加すればスキップは発生しません。
ログによると、ループカウンターを表示しているだけですが
ご返信からは、私が「食べた」印象を受けます。それは単にもっと重要なことがあったのでログに入れなかっただけですが、私の本当の仕事はすべての注文を調べて特定のものを削除することで、EAがその一部をスキップしている(これは最も低い優先度で情報を出力して いない)ことに気付きました。私は理由を理解するためにタスクを簡素化し、その結果、我々はログに出力のみを持っていますが、私はまだ省略された順序、すなわち、Expert Advisorは、いくつかの順序を飛び越える参照してください。 最低注文優先度は0からではない開始出力をよく説明しますが、それは、例えば、124から99にジャンプすると矛盾した出力を説明できる方法を示します。
もし、"食べた "というのが別の意味だとしたら、何を意味するのか理解したい。
すごいなー。
ローマン!
例えば私は、20年の経験を持つトレーダーとして成功しています。
なぜ「エントリーしたペアの終値と その移動平均の 差」が必要なのか理解できません。
さらに、この差分を移動平均にする方法をご存知でしょうか?- ファンタスティック!
単純に相場の移動平均を描けばいいのか?- また、違うのか?
で、何が問題なんだ?
終値平均の差は終値平均の差にあらず、嗚呼、嗚呼
疑問点とは?とにかく、MQL4でエラーは出ない。
1.コードの挿入 方法について説明します。
OrderMagicNumber()の解析を削除し、3つのログを追加するなど、最小限の変更を加えました。
結果は、残念ながら、同じです。- 1枚目のスクリーンショットでは冒頭(なぜ0から始まらないのかわからない)、2枚目では-124から99で始まるところです。
2.logとは対数のこと?
備考
MathLog() の代わりに log() を使用することができます。
また、CopyClose()の呼び出しが 多すぎるという重大な欠点も発見しました。
通貨ペアの配列からループで気配値をコピーする方法を教えてください。
それはダブル配列の ように見えますが、MQLはそれをサポートしていません、%のように。
ダブルアレイとはどういう意味ですか?
ダブル配列」とはどういう意味ですか?
まあ、二次元ですね。
まあ二次元。
CopyCloseが 2次元配列にデータをコピーすることはどこに書いてあるのですか?そもそも、なぜ2Dアレイの話が出たのでしょうか?
CopyCloseが2次元配列にデータをコピーすることはどこに書いてあるのですか?なぜ2次元配列と言われたのですか?
引用符を配列で格納する必要があるため
ループ内で一旦コピーして、ArrayCopyで 計算を行うため、CloseCopyではなく