mql5言語の特徴、微妙なニュアンスとテクニック - ページ 16 1...91011121314151617181920212223...247 新しいコメント Slava 2017.03.07 06:50 #151 アンドレイ・ディク バックテスト」タブの「チャートを開く」コマンドで、テスト後に開いたチャートに、EAで使用したすべてのインディケータを適切なパラメータで自動的に追加することは可能でしょうか?まだです。とりあえずビジュアルテストのテンプレートを保存して、クライアント端末で適用することができます Andrey Dik 2017.03.07 07:01 #152 スラワまだです。とりあえずビジュアルテストのテンプレートを保存して、クライアント端末で適用することができます。そして、EAのOnDeinitで以下のようにすると。 ChartSaveTemplate ()を tester.tpl という名前にして、"Open Chart" コマンドでチャートを開いたら、必要なものが得られるのでしょうか? Slava 2017.03.07 07:04 #153 アンドレイ・ディクそして、Expert AdvisorのOnDeinitで次のようにします。 ChartSaveTemplate ()をtester.tplと名付けると、"Open Chart"コマンドでチャートを開いた後に、必要なものが表示されますね。ChartSaveTemplate は、テスターエージェントのローカルファイルフォルダにテンプレートを保存します。メインメニューからレンダラーでテンプレートを手動で保存するという意味です。Tester.tplは、クライアントターミナルからビジュアライザーへの一方通行でのみ動作します。 Andrey Dik 2017.03.07 07:07 #154 スラワChartSaveTemplate は、テンプレートをテスターエージェントのローカルファイルフォルダに保存します。ビジュアライザーからメインメニューを通して手動でテンプレートを保存するという意味です。Tester.tplは、クライアントターミナルからビジュアライザーへの一方通行でのみ動作します。いや、遅いし、手間もかかるし、特にテンプレートを保存するためだけに毎回ビジュアルテストを 行うのはコストがかかりすぎることが多いので......。インジケータでテストした後にチャートを開くことができるはずだということです。SZY.テスターでは動作しません。//——————————————————————————————————————————————————————————————————————————————void OnDeinit (const int reason){ if(ChartSaveTemplate(0, "testersdfsdfsdfsdf")) Print (__FUNCTION__ + ": Шаблон сохранён"); else Print (__FUNCTION__ + ": Шаблон НЕ сохранён"); EventKillTimer ();}//——————————————————————————————————————————————————————————————————————————————//——————————————————————————————————————————————————————————————————————————————double OnTester (){ if(ChartSaveTemplate(0, "testersdfsdfsdfsdf")) Print (__FUNCTION__ + ": Шаблон сохранён"); else Print (__FUNCTION__ + ": Шаблон НЕ сохранён"); return (-DBL_MAX);}//——————————————————————————————————————————————————————————————————————————————の結果です。2017.03.07 12:22:15.422 Core 1 2017.03.06 23:58:59 OnTester: Template NOT saved. 2017.03.07 12:22:15.422 Core 1 最終残高 1129.18 USD 2017.03.07 12:22:15.422 Core 1 OnTesterの結果 -1.797693134862316e+308 2017.03.07 12:22:15.422 Core 1 2017.03.06 23:58:59 OnDeinit: Template NOT saved. Features of the mql5 Errors, bugs, questions エラー、バグ、質問 Roffild 2017.03.07 19:33 #155 void OnStart() { int indic = iCustom(Symbol(), Period(), "Examples\\ATR", 7, PRICE_CLOSE, clrGreen); ChartIndicatorAdd(0, 1, indic); Sleep(10000); }この方法では、インジケーターの色を設定することはできません。では、なぜ「バグではなく、機能だ」と言う人がいるのでしょうか。しかし、公式の回答ですっかり納得してしまった。 MQL5プログラムからインジケーターの色やスタイルを変更する方法について考えていきます。一方、インジケーターの色を設定するには、カラータイプの入力変数を使用します。 Slava 2017.03.08 07:05 #156 ロフィルドvoid OnStart() { int indic = iCustom(Symbol(), Period(), "Examples\\ATR", 7, PRICE_CLOSE, clrGreen); ChartIndicatorAdd(0, 1, indic); Sleep(10000); }この方法では、インジケーターの色を設定することはできません。では、なぜ「バグではなく、機能だ」と言う人がいるのでしょうか。しかし、公式の回答は、私にとってはまったく納得のいくものです。 インジケータハンドル(計算部)から表示(描画)プロパティを設定することができないため。バグとは、ある方法で書かれたものが、別の方法で動作することです。ここでは、別のアプローチが必要です。ChartIndicatorXXX機能グループのように、短い名前による指標へのアクセス。ChartIndicatorSetInteger(chart_id,sub_window,indicator_name,PROP_COLOR,mod,value) のような ものです。すでに考えてはいるのですが、まだ手をつけていません。 Roffild 2017.03.08 21:19 #157 なぜ、ハンドルを通して何かを設定する必要があるのでしょうか?色はPLOT_LINE_COLORプロパティを通してインジケータ自身で 設定されます。indicator_colorN は PLOT_LINE_COLOR で変更された元の色を設定するだけである。indicator_colorN は、インジケータが呼び出さ れ、PLOT_LINE_COLOR で設定される場合の入力と変わりません。このようなプロパティをハンドルで変更することは一切許可してはいけません。そして、indicator_bufferを動的に設定できるようにするときです。 Slava 2017.03.09 07:07 #158 ロフィルドなぜ、ハンドルを通して何かを設定する必要があるのでしょうか?色はPLOT_LINE_COLORプロパティを通してインジケータ自身で 設定されます。indicator_colorN は PLOT_LINE_COLOR で変更された元の色を設定するだけである。indicator_colorN は、インジケータが呼び出さ れ、PLOT_LINE_COLOR で設定される場合の入力と変わりません。このようなプロパティをハンドルで変更することは一切許可してはいけません。そして、indicator_bufferを動的に設定できるようにするときです。ハンドルネームには触れないでください。ハンドルは描画プロパティの設定に使えないと自分に言い聞かせています。そして、その理由を説明しました。カスタム・インジケータの他に、組み込みのインジケータがあり、それらをチャートに追加した後、色を変更する必要があることを忘れないでください。 Roffild 2017.03.09 20:48 #159 インジケータ呼び出しの 機能を拡張することだけを提案しています。 iCustom(... inputs, PRICE_CLOSE, [color color1, int width1, int style1]... ); iAlligator(... params, PRICE_CLOSE, [color color1, int width1, int style1]... ); 他に追加するものはありません。 TheXpert 2017.03.09 21:18 #160 ロフィルドインジケータ呼び出しの 機能を拡張することだけを提案しています。 えー、どうせ見えないのになぜ? 1...91011121314151617181920212223...247 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
バックテスト」タブの「チャートを開く」コマンドで、テスト後に開いたチャートに、EAで使用したすべてのインディケータを適切なパラメータで自動的に追加することは可能でしょうか?
まだです。
とりあえずビジュアルテストのテンプレートを保存して、クライアント端末で適用することができます
まだです。
とりあえずビジュアルテストのテンプレートを保存して、クライアント端末で適用することができます。
そして、EAのOnDeinitで以下のようにすると。
ChartSaveTemplate ()
を tester.tpl という名前にして、"Open Chart" コマンドでチャートを開いたら、必要なものが得られるのでしょうか?
そして、Expert AdvisorのOnDeinitで次のようにします。
ChartSaveTemplate ()
をtester.tplと名付けると、"Open Chart"コマンドでチャートを開いた後に、必要なものが表示されますね。
ChartSaveTemplate は、テスターエージェントのローカルファイルフォルダにテンプレートを保存します。
メインメニューからレンダラーでテンプレートを手動で保存するという意味です。
Tester.tplは、クライアントターミナルからビジュアライザーへの一方通行でのみ動作します。
ChartSaveTemplate は、テンプレートをテスターエージェントのローカルファイルフォルダに保存します。
ビジュアライザーからメインメニューを通して手動でテンプレートを保存するという意味です。
Tester.tplは、クライアントターミナルからビジュアライザーへの一方通行でのみ動作します。
いや、遅いし、手間もかかるし、特にテンプレートを保存するためだけに毎回ビジュアルテストを 行うのはコストがかかりすぎることが多いので......。
インジケータでテストした後にチャートを開くことができるはずだということです。
SZY.テスターでは動作しません。
void OnDeinit (const int reason)
{
if(ChartSaveTemplate(0, "testersdfsdfsdfsdf"))
Print (__FUNCTION__ + ": Шаблон сохранён");
else
Print (__FUNCTION__ + ": Шаблон НЕ сохранён");
EventKillTimer ();
}
//——————————————————————————————————————————————————————————————————————————————
//——————————————————————————————————————————————————————————————————————————————
double OnTester ()
{
if(ChartSaveTemplate(0, "testersdfsdfsdfsdf"))
Print (__FUNCTION__ + ": Шаблон сохранён");
else
Print (__FUNCTION__ + ": Шаблон НЕ сохранён");
return (-DBL_MAX);
}
//——————————————————————————————————————————————————————————————————————————————
の結果です。
2017.03.07 12:22:15.422 Core 1 2017.03.06 23:58:59 OnTester: Template NOT saved.
2017.03.07 12:22:15.422 Core 1 最終残高 1129.18 USD
2017.03.07 12:22:15.422 Core 1 OnTesterの結果 -1.797693134862316e+308
2017.03.07 12:22:15.422 Core 1 2017.03.06 23:58:59 OnDeinit: Template NOT saved.
{
int indic = iCustom(Symbol(), Period(), "Examples\\ATR", 7, PRICE_CLOSE, clrGreen);
ChartIndicatorAdd(0, 1, indic);
Sleep(10000);
}
この方法では、インジケーターの色を設定することはできません。
では、なぜ「バグではなく、機能だ」と言う人がいるのでしょうか。
しかし、公式の回答ですっかり納得してしまった。
MQL5プログラムからインジケーターの色やスタイルを変更する方法について考えていきます。
一方、インジケーターの色を設定するには、カラータイプの入力変数を使用します。
{
int indic = iCustom(Symbol(), Period(), "Examples\\ATR", 7, PRICE_CLOSE, clrGreen);
ChartIndicatorAdd(0, 1, indic);
Sleep(10000);
}
この方法では、インジケーターの色を設定することはできません。
では、なぜ「バグではなく、機能だ」と言う人がいるのでしょうか。
しかし、公式の回答は、私にとってはまったく納得のいくものです。
インジケータハンドル(計算部)から表示(描画)プロパティを設定することができないため。バグとは、ある方法で書かれたものが、別の方法で動作することです。
ここでは、別のアプローチが必要です。ChartIndicatorXXX機能グループのように、短い名前による指標へのアクセス。ChartIndicatorSetInteger(chart_id,sub_window,indicator_name,PROP_COLOR,mod,value) のような ものです。
すでに考えてはいるのですが、まだ手をつけていません。
なぜ、ハンドルを通して何かを設定する必要があるのでしょうか?色はPLOT_LINE_COLORプロパティを通してインジケータ自身で 設定されます。
indicator_colorN は PLOT_LINE_COLOR で変更された元の色を設定するだけである。
indicator_colorN は、インジケータが呼び出さ れ、PLOT_LINE_COLOR で設定される場合の入力と変わりません。
このようなプロパティをハンドルで変更することは一切許可してはいけません。
そして、indicator_bufferを動的に設定できるようにするときです。
なぜ、ハンドルを通して何かを設定する必要があるのでしょうか?色はPLOT_LINE_COLORプロパティを通してインジケータ自身で 設定されます。
indicator_colorN は PLOT_LINE_COLOR で変更された元の色を設定するだけである。
indicator_colorN は、インジケータが呼び出さ れ、PLOT_LINE_COLOR で設定される場合の入力と変わりません。
このようなプロパティをハンドルで変更することは一切許可してはいけません。
そして、indicator_bufferを動的に設定できるようにするときです。
ハンドルネームには触れないでください。ハンドルは描画プロパティの設定に使えないと自分に言い聞かせています。そして、その理由を説明しました。
カスタム・インジケータの他に、組み込みのインジケータがあり、それらをチャートに追加した後、色を変更する必要があることを忘れないでください。
インジケータ呼び出しの 機能を拡張することだけを提案しています。
他に追加するものはありません。インジケータ呼び出しの 機能を拡張することだけを提案しています。