MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 622

 
neverness:

私たちは子供ではなく、完全にまともな人間です。

小声で誤魔化すようなことはやめよう。

もう一度、質問を繰り返す。

何らかのスクリプトオブジェクト(OnStart()、例えば楕円)が構築されているインジケータの簡単なコードを教えてください。

手順は以下の通りです。

MetaEditorに入ります。File->Create...をクリックします。

Indicatorをクリックします。

そして、この環境では、スクリプトオブジェクトのコード(OnStart()、例えばellipse)を入力します。

とても簡単です。

グッドラック !!!

必要な機能はすべてインジケータに記述できるのに、なぜインジケータからスクリプトを呼び出すのでしょうか?
 
Vitaly Gorbunov:
必要な機能は全てインジケータに記述できるのに、なぜインジケータからスクリプトを呼び出す必要があるのでしょうか?

これは、どんなプログラミング環境でも最もシンプルな手順です。C++では全く問題ありません。

データストリームからグラフィカルなオブジェクトを構築します。オブジェクトの位置や形状などは、このフローの値に依存する。

MQL環境での入力データの流れはインジケータが担っているので、この環境で注目のオブジェクトを構築します。

すべてがロジカルです。

しかし、MQLではこれらのオブジェクトをビルドすることはできません。

C++、BASIC、JavaScriptなど、どのプログラミング環境でも問題ないにもかかわらず、である。

どういう意図で「必要な機能」を表現したのか、私には謎です。

一般的には

プログラマーは通常、コード・ランゲージ(CODE LANGUAGE)で話す。

もしできたら、CODEのexampleをお願いします

そうでないなら、私に同意する以外の選択肢はないのです。

というくらいシンプルです。

 

То есть, требуется не просто бросить объект на форму, или создать независимый ни  от чего объект, как в Вашем примере, а внедрить этот объект в вычислительную среду индикатора .

つまり、インジケーターのデータフローが変われば、グラフィカルオブジェクトも変わるということです。

あなたの例のように、何にも依存しないチャート上の単なるダミーではありません。


インジケータがこのオブジェクトで動作する方法を知っていれば、このオブジェクトで動作することになりますが、何が問題なのでしょうか?具体的にどのような問題があるのでしょうか?そうでなければ、真空中の球形の馬を議論していることになります。

 
neverness:

これは、どんなプログラミング環境でも最もシンプルな手順です。C++では全く問題ありません。

データストリームからグラフィカルなオブジェクトを構築します。オブジェクトの位置や形状などは、このストリームの値に依存する。

MQL環境での入力データの流れはインジケータが担っているので、この環境で注目のオブジェクトを構築します。

すべてがロジカルです。

しかし、MQLではこれらのオブジェクトをビルドすることはできません。

C++、BASIC、JavaScriptなど、どのプログラミング環境でも問題ないにもかかわらず、である。

どういう意図で「必要な機能」を表現したのか、私には謎です。

一般的には

プログラマーは通常、コード・ランゲージ(CODE LANGUAGE)で話す。

もしできたら、CODEのexampleをお願いします

できないのであれば、私に同意する以外の選択肢はないのです。

というくらいシンプルです。

言葉の使い方を知らないことは、侮辱される理由にはならない。

コードベースには、あらゆるテイストやカラーに対応したさまざまなコードがあふれています。

MQL5 Code Base
MQL5 Code Base
  • www.mql5.com
Две одинаковые торговые системы (для лонгов и шортов), построенные на сигналах индикатора ColorSchaffJJRSXTrendCycle, которые можно настраивать различным образом в одном эксперте с возможностью менять размер предстоящей сделки в зависимости от результатов предыдущих сделок для данной торговой системы.
 

Строим графический объект по потоку данных. Положение объекта, его форма и другие характеристики зависят от значений этого потока.

インジケータはMQL環境での入力データの流れを担っているので、この環境で注目のオブジェクトを構築します。

すべてがロジカルです。

しかし、MQLではこれらのオブジェクトをビルドすることはできません。


インジケーターで作れないモノは?

 
Vitaly Gorbunov:

もし、インジケータがこのオブジェクトで動作する方法を知っていれば、このオブジェクトで動作します。具体的にどのような問題があるのか、教えてください。そうでなければ、真空中の球形の馬を議論していることになります。

極めてシンプルなことです。

インジケーターの イベントを取り上げてみましょう

int OnCalculate(const int rates_total,
)const int prev_calculated,
const datetime &.time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])

で、例えば、値のスレッド orn[] を取り、このスレッドの値が予め設定した値より大きければ、計算された特性を持つチャートのある点に、何らかのグラフィックスクリプトオブジェクトを構築します。

すべてが初歩的なシンプルさです。

つまり、データフィールドOnCalculate()にスクリプトオブジェクトOnStart()を埋め込み、計算値で目的のオブジェクトを構築する必要があります。

それは、初歩的なシンプルさです。

MQLでどうやるか?

 
Vitaly Muzichenko:

言葉の使い方を知らないことは、侮辱される理由にはならない。

コドベースには、あらゆるテイストやカラーに対応した、さまざまなコードが存在します。

不得意は一緒に綴る→https://ru.wiktionary.org/wiki/неумение

以前から言っていますが、MQLの「数学の殻」は意図的に外しています。

これは、「コドベースにあふれる」、あらゆる「テイストとカラー」を持つ、まさに「異なるコード」についても言及しています。

さて、親愛なるVitaly!

私自身は、このような発言は侮辱と受け止めています。

そして、反応の一部を得るために親切にすること。

これです。

ご指摘の通り、コドベースには1000%の利益をもたらす様々な「奇跡のコード」があり、本当に十分すぎるほどです。

しかし、問題は、これらのコードの作者が我々に提供した情報が、どれだけ真実であるかということだ。

そして、「勝てるEA」を作るというタスクを数学的に厳密に定式化すると、このタスクは次のようになります。

問題の文言

このEAが選択したどんな状況でもWin-Winの結果を出すEAを作ることは可能ですか?

問題を解決する。

だから

純粋に数学的な解決策としては、以下の組み合わせを指定すればよいことがわかりました。

このEAが故意に負けてしまい、トレーダーは故意に資金を失うことになります。

もちろん、この問題に対して純粋に数学的な解答を与えることはしないが、それが真実であることは確かである。

つまり、数学的な観点から、どのアドバイザーに対しても、このEAのアクションがトレーダーにとって利益にならないような状況を指定することができるのです。


今、法的な観点からこの問題にアプローチすると、あらゆるアドバイザーの売り込みは、もうひとつの「詐欺商法」に他なりません。

なぜなら、どのExpert Advisorも「Win-Win」を提供することはできないからです。


したがって、親愛なるヴィタリー、「言葉の使い方」や「コードの使い方」を知っていても、トレーダーを損失から守ることはできないのです。

そして、それは確かに侮辱にはなりえません。

だから、次回はもっと慎重に言葉を選んでください。

 
Vitaly Gorbunov:

インジケーターで作れないモノは?

では、作ってみてください。

個人的には、そのようなモノが造れる地平は見えていない。

せめて何か見たい。

何しろ私はまだMQLの「初心者」ですからね。もしかしたら、私が知らないこと、見落としていることがあるかもしれません。

 
neverness:

単純なことです。

指標となる事象を取り上げる

int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])

で、例えば、oren[]の値のスレッドを取り、このスレッドの値が予め設定したものより大きければ、チャートのある計算されたポイントに、計算された特性を持つ何らかのスクリプトグラフィックオブジェクトを構築することになります。

すべてが初歩的なシンプルさです。

つまり、データフィールドOnCalculate()にスクリプトオブジェクトOnStart()を埋め込み、計算値で目的のオブジェクトを構築する必要があります。

それは、初歩的なシンプルさです。

MQLで行うには?

では、この物体を作って、それを制御してください。

どうでしょう。簡単なタスクを記述して、月曜日に私がそれを実行してみるというのは。

 
Vitaly Gorbunov:

だから、この物体を作って、それを制御する。 何がたいしたことなのか?

例えば、簡単なタスクを記述して、月曜日にそれを実行してみるとします。

簡単な作業はすでに説明した通りです。

MetaEditorを起動します。

ファイル」→「作成」をクリックします。

ポップアップフィールドで「Indicator」を選択します。

インジケータOnCalculate() では、OnStart()イベントを持つ任意のスクリプトオブジェクトを導入します。

個人的にはどうしたらいいのかわからない。例えば、こんな風に。

int OnCalculate(const int rates_total,
)const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &.tick_volume[],
const long &volume[],
const int &spread[])
{
//---
for(int i = 1; i < 100;i++)

{

if(open[i] > Max)

{

OnStart()

そして、ここでは、目的のオブジェクトを構築するためのスクリプトを書く必要がある。例えば、楕円や図表上の文字など

} //if(オープン)

} //for(int i)
//--- 次の呼び出しのために prev_calculated の値を返す
return(rates_total);
}.// OnCalculate

これはきっと、こんな感じなんでしょうね。

しかし、このコードはMQLトランスレータに受け入れられません。