初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1311 1...130413051306130713081309131013111312131313141315131613171318...1504 新しいコメント Alexey Viktorov 2021.05.31 20:34 #13101 Sprut 185:ご参加ありがとうございました。 残念ながら、ObjectSet*** 関数は私のタスクには適していませんでした。 OnDeinit()関数を 使用して自分で解決しました。 これですべてが正常に動作するようになりました。 しかし、あなたの質問には、こんな言葉があります。 スプルート185: 一つ問題があるので、よろしくお願いします 私はコードを書くことを学んだばかりで、この点については、私の無教養を寛大に見ていただきたいと思います。 タイムフレームを変更したり、インジケータメニューの設定を変更したりすると、チャートのグラフィックオブジェクトが更新されるOnChartEvent 関数を理解してもらいたいと思います。 まずグラフィカルなオブジェクトを削除してから、再度作成する必要があると理解しています。しかし、オブジェクトが削除されると、そのプロパティにアクセス できなくなり、そのオブジェクトをどうやって 再作成するのか.........。 それとも、私が理解していないのでしょうか?あるいは、チャート上のグラフィカルなオブジェクトを更新するという別の 方法があるのでは? どうすればいいのか、コメント付きで例を書いてください。 また、削除しないためには、ObjectSet*** 関数の1つで必要なオブジェクトのプロパティを変更するだけです。。 すべてのオブジェクトを削除する......ということですが、すべてのオブジェクトを無差別に削除する場合は、十分に注意が必要です。チャート上のオブジェクトの中には、手動や他のExpert Advisor/Indicatorが作成したオブジェクトがある可能性があります。オブジェクトの削除が好きな人は、接頭辞による削除に注目してみてください。本当は、プレフィックスで作成する必要があります。難しいことではありません。 Aleksei Skrypnev 2021.06.02 13:29 #13102 の結果はどうなるのでしょうか?iSpread ?ターミナルのSymbols/Barsでバーを照会すると、おおよそスプレッド値に近い値になるんですね。もちろんこれらの値はSYMBOL_SPREADで与えられる実際の値とは一致しない。なぜ、このような違いがあるのでしょうか?そして、そんな非現実的なスプレッドが、iSpreadを使って 表示されるとは。 Vladimir Karputov 2021.06.02 15:21 #13103 Aleksei Skrypnev: この関数はどのような結果を 示すのでしょうか iSpread ? ターミナルのSymbols/Barsでバーを照会すると、おおよそスプレッド値に近い値になるんですね。 もちろんこれらの値はSYMBOL_SPREADで与えられる実際の値とは一致しない。 なぜ、このような違いがあるのでしょうか?そして、そんな非現実的なスプレッドが、iSpreadを使って 表示されるとは。 バーあたりの最小スプレッド。 チェック用のバッファを追加しました - インジケータ配列 spread[] からデータを受け取り、現在のバーのコメントを表示します - iSpread の結果です。 やり方はこちら:スプレッドコントロール Spread Control www.mql5.com Просмотр спреда ファイル: Spread_Control_2.mq5 10 kb Alexey Belyakov 2021.06.03 15:23 #13104 ごあいさつ 変数「ATR14」が変化しない理由と、変化する様子を確認する方法を教えてください。 void OnTick() { double ATR14=iATR(NULL,PERIOD_CURRENT,14); Comment( "ATR14==: ",ATR14,"\n"); } Vladimir Karputov 2021.06.03 15:35 #13105 Alexey Belyakov:ごあいさつ変数「ATR14」が変化しない理由を教えてください。 どうすれば変化するのがわかりますか? なぜなら、MQL5ではインジケータハンドル(ちなみにint型です)は1回だけ作成され、OnInitで行われるからです。 また、インジケーターからのデータ受信には、CopyBufferを使用 します。 Alexey Belyakov 2021.06.03 16:05 #13106 Vladimir Karputov:なぜなら、MQL5では、インジケータハンドル(ちなみにint型です)は1回だけ作成され、OnInitで行われるからです。また、インジケーターからのデータ受信には、CopyBufferを使用 します。 よし、仮定してみよう。 double ATR14m[]; int ATR14; int OnInit() { ATR14=iATR(NULL,PERIOD_CURRENT,14); return(0); } void OnDeinit(const int reason) { //--- } void OnTick() { CopyBuffer(ATR14,0,0,3,ATR14m); Comment( "ATR14==: ",ATR14,"\n"); } 何も変わっていない。 SanAlex 2021.06.03 16:17 #13107 Alexey Belyakov:ごあいさつ変数 "ATR14" が変化しない理由を教えてください。 また、どうすれば変化を見ることができますか? 以下はその一例です。 Документация по MQL5: Технические индикаторы / iATR www.mql5.com iATR - Технические индикаторы - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Vladimir Karputov 2021.06.03 16:20 #13108 Alexey Belyakov:まあ、それはともかくとして何も変わっていない。 ほぼ決まりましたね。配列の呼び出しは「ATR14m」ではなく、「array_atr」を推奨します。そうすれば、'Comment'を呼び出す際のエラーがすぐに分かるでしょう。 Alexey Belyakov 2021.06.03 16:40 #13109 Vladimir Karputov:ほぼ正解ですね。配列の呼び出しは「ATR14m」ではなく、「array_atr」を推奨します。そうすれば、「コメント」呼び出しで自分のエラーをすぐに確認することができます。double array_atr[]; int ATR14; int OnInit() { ATR14=iATR(NULL,PERIOD_CURRENT,14); return(0); } void OnDeinit(const int reason) { //--- } void OnTick() { CopyBuffer(ATR14,0,0,3,array_atr); Comment( "ATR14==: ",array_atr,"\n"); } 変更したところ、以下のようなエラーが発生しました。 " 'array_atr' - invalid array access " Alexey Viktorov 2021.06.03 16:42 #13110 Vladimir Karputov:ほぼ正解ですね。配列の呼び出しは「ATR14m」ではなく、「array_atr」を推奨します。そうすれば、'Comment'を呼び出す際のエラーがすぐに分かるでしょう。 子供のトイレにナイトベースと名付けると何か変わると思いますか? このような誤解があるため、あえて提案しようとは思いませんが......ドキュメントを50回くらい読まないと理解できませんね......。 1...130413051306130713081309131013111312131313141315131613171318...1504 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ご参加ありがとうございました。
残念ながら、ObjectSet*** 関数は私のタスクには適していませんでした。
これですべてが正常に動作するようになりました。
しかし、あなたの質問には、こんな言葉があります。
一つ問題があるので、よろしくお願いします
私はコードを書くことを学んだばかりで、この点については、私の無教養を寛大に見ていただきたいと思います。
タイムフレームを変更したり、インジケータメニューの設定を変更したりすると、チャートのグラフィックオブジェクトが更新されるOnChartEvent 関数を理解してもらいたいと思います。
まずグラフィカルなオブジェクトを削除してから、再度作成する必要があると理解しています。しかし、オブジェクトが削除されると、そのプロパティにアクセス できなくなり、そのオブジェクトをどうやって 再作成するのか.........。 それとも、私が理解していないのでしょうか?あるいは、チャート上のグラフィカルなオブジェクトを更新するという別の 方法があるのでは?
どうすればいいのか、コメント付きで例を書いてください。
また、削除しないためには、ObjectSet*** 関数の1つで必要なオブジェクトのプロパティを変更するだけです。。
すべてのオブジェクトを削除する......ということですが、すべてのオブジェクトを無差別に削除する場合は、十分に注意が必要です。チャート上のオブジェクトの中には、手動や他のExpert Advisor/Indicatorが作成したオブジェクトがある可能性があります。オブジェクトの削除が好きな人は、接頭辞による削除に注目してみてください。本当は、プレフィックスで作成する必要があります。難しいことではありません。
iSpread ?
ターミナルのSymbols/Barsでバーを照会すると、おおよそスプレッド値に近い値になるんですね。
もちろんこれらの値はSYMBOL_SPREADで与えられる実際の値とは一致しない。
なぜ、このような違いがあるのでしょうか?そして、そんな非現実的なスプレッドが、iSpreadを使って 表示されるとは。
この関数はどのような結果を 示すのでしょうか
iSpread ?
ターミナルのSymbols/Barsでバーを照会すると、おおよそスプレッド値に近い値になるんですね。
もちろんこれらの値はSYMBOL_SPREADで与えられる実際の値とは一致しない。
なぜ、このような違いがあるのでしょうか?そして、そんな非現実的なスプレッドが、iSpreadを使って 表示されるとは。
バーあたりの最小スプレッド。
チェック用のバッファを追加しました - インジケータ配列 spread[] からデータを受け取り、現在のバーのコメントを表示します - iSpread の結果です。
やり方はこちら:スプレッドコントロール
ごあいさつ
変数「ATR14」が変化しない理由と、変化する様子を確認する方法を教えてください。
ごあいさつ
変数「ATR14」が変化しない理由を教えてください。 どうすれば変化するのがわかりますか?
なぜなら、MQL5ではインジケータハンドル(ちなみにint型です)は1回だけ作成され、OnInitで行われるからです。
また、インジケーターからのデータ受信には、CopyBufferを使用 します。
なぜなら、MQL5では、インジケータハンドル(ちなみにint型です)は1回だけ作成され、OnInitで行われるからです。
また、インジケーターからのデータ受信には、CopyBufferを使用 します。
よし、仮定してみよう。
何も変わっていない。
ごあいさつ
変数 "ATR14" が変化しない理由を教えてください。 また、どうすれば変化を見ることができますか?
以下はその一例です。
まあ、それはともかくとして
何も変わっていない。
ほぼ決まりましたね。配列の呼び出しは「ATR14m」ではなく、「array_atr」を推奨します。そうすれば、'Comment'を呼び出す際のエラーがすぐに分かるでしょう。
ほぼ正解ですね。配列の呼び出しは「ATR14m」ではなく、「array_atr」を推奨します。そうすれば、「コメント」呼び出しで自分のエラーをすぐに確認することができます。
ほぼ正解ですね。配列の呼び出しは「ATR14m」ではなく、「array_atr」を推奨します。そうすれば、'Comment'を呼び出す際のエラーがすぐに分かるでしょう。
子供のトイレにナイトベースと名付けると何か変わると思いますか?
このような誤解があるため、あえて提案しようとは思いませんが......ドキュメントを50回くらい読まないと理解できませんね......。