ドミトリー、これは何だ?
、コードサンプルはどこにあるのですか?プログラマーのアイデアの本質はどこにあるのですか?
原理と識別を説明する章 - 残念ながら何が起こっているのかに光を当てることはできませんでした。
そのような印象は、彼らは可能なマクロのリストを忘れないように自分自身のためにそれを書いた。
コードの中で何が起こっているのか、その目的を皆のために説明してくれますか?(私はアプリケーションに興味があるのではなく、MQLアルゴリズムの構成に興味があるだけです)。
「プログラマーによるプログラマーのための」記事のようだ。ただ、誰が(著者を除いて)それを使うのかがはっきりしない。「mql5を学ぶ」対「eIntepretarを 学ぶ」。
しかし、その仕事ぶりはとんでもないもので、賞賛に値する。
ドミトリー、これは何だ?
、コードサンプルはどこにあるのですか?プログラマーのアイデアの本質はどこにあるのですか?
原理と識別を説明する章 - 残念ながら何が起こっているのかに光を当てることはできませんでした。
そのような印象は、彼らは可能なマクロのリストを忘れないように自分自身のためにそれを書いた。
コードの中で何が起こっているのか、その目的を皆のために説明してくれますか?(私はアプリケーションに興味があるのではなく、MQLアルゴリズムの構成に興味があるだけです)。
参照テーブルが3つか4つあります。残りはコメント付きのマクロです。この記事は非常に情報量が多いので、一字一句飛ばさずに読むべきで、不明な点が1つでもあれば(もちろん、必要であれば、そして望むのであれば)、次へ進んではいけない。一読しただけでは、おそらく何の役にも立たないだろう。もし中心的な考えをひとつにまとめようとするなら、それはそれほど大きく複雑なものではない。オーダーに関するどんな戦略も、考えられるあらゆる状態の段階に分解されるべきだが、これは個人的な創造的プロセスであって、形式化されたものではない。しかし、これは個人的な創造的プロセスであり、形式化されたものではない。あなたが望むなら、形式化することは可能だが、多くの文章を書くことになるだろう。
プログラマーのアイデア...人間の言語によるプログラムによって、鉄の機械が動くのです。
コードの例。StringFind()関数と StringSubstr()関数。一般的に、PHPの文字列関数を勉強することは有益です - それはあなたの創造性を本当に広げることができます...
この記事で紹介されている情報の全量を他の方法で表現しようとすると、5-10倍のボリュームになるかもしれません...
コードの中で何が起こっているのか...ファイルを一行ずつ読み、コメントを「#」記号で区切り、フェーズとアクションのフィールドを「|」記号で分割し、コマンドを「;」記号で分割する。そして、比較式の中に<, >, <=, <=などの部分文字列を探す。もし見つかれば、そのインデックスを記録し、式はそのインデックスによって左右に分割される。算術式は残る。または-で始まる場合は、1文字字下げして、*記号のない+または-を探す。または-を部分文字列に分割し、その2つの部分文字列を*記号で分割する。その後、4つの引数がある(式の左側にもう1つある)。これらの引数にはコマンドを指定することができる。数値か、末尾にpを持つ数値か、ユーザー変数か、末尾にpを持つユーザー変数かをチェックし、そうであれば数値に置き換える。そうでなければ、コマンドである。コマンドそのものとその引数を符号(.
)で区切ります。最も興味深いのは式の計算です。構造体があり、各構造体に値を持つ5つの構造体があり、値構造体は値が直接数値かコマンドかを指定する。値を持つ各構造体に対して、値を計算する関数が呼び出される。値が数値の場合は関数は何もせず、コマンドの場合は適切な関数が呼び出される(スイッチで選択)。値が記入された後、算術式が計算され、構造体の中で値の符号と算術作用が指定される...。すべてが数字(インデックス)によって指定され、必要なアクションがスイッチによって選択される。
作業解釈のプロセスそのものが、スイッチの2つのレベルである:コマンドと、コマンドについて受け取ったデータの識別子のために入れ子になっている。興味があれば、OnTick()関数のコードを掘り下げてみてください。最大のコード量はOnInit()関数から来るが、そこではそれほど興味深いものではなく、誰かにとってより便利なように行うことができる - StringFind()関数とStrSubstr()関数だけである。
- www.mql5.com
単純なTSをプログラムする方法、少なくとも低速MAと高速MAのクロスで取引する方法の例が必要です。
Khe... まず、記事の全文を読んでください。
...戦略のビジュアル・デザイナーになる...。
それはいいアイデアだ。それでも、戦略を考え、分析し、フェーズに分けなければならない。
「プログラマーによるプログラマーのための」記事のようだ。ただ、誰が(著者を除いて)それを使うのかがはっきりしない。「mql5を学ぶ」対「eIntepretarを 学ぶ」。
そして、その仕事ぶりは単に途方もないものであり、賞賛に値する。
まあ、「クレイジー・サイエンティスト」みたいなところもあるが......。気休めとして、あまり詳しくはないが、いくつかのオーダー戦略の説明が写真付きで載っている......。誰か、もしかしたら、少なくともこれは役に立つかもしれない...。
Если постараться изложить весь объем информации представленный в статье как-то иначе, она бы могла поучиться раз в 5-10 объемней...
参考文献の表をドキュメントに入れ、それを記事に添付すればいい。
記事の内容を理解するために、自分自身で論文を作成することにした。
ディミトリ、間違っていたら訂正してくれ。
つまり、専門家の仕事は州をチェックすることだ。すべての状態を。ポイント・バイ・ポイント。
そして、もしその状態のどれかが現時点で関連していれば、その状態に対してマクロが規定することを行う。
作業は矛盾を生じさせないことである。複数のマクロに同じ状態を処理させたり、2つのマクロの衝突を避けたりすることである(たとえば、1つが閉じて2つ目がすぐに開くと、「喧嘩」になる)。
つまり、エキスパートの作業は、常にループで実行され、指定されたすべての マクロ(ファイルに書いたものなど)をチェックし、それらが条件を満たしたときに、それらのマクロが規定することを実行することである。
例えば、簡単なストラテジー(インジケーター・ストラテジーでも可)があるとしよう。
MAがクロスしたときに注文を出す必要がある。そしてそれを使う。そして、ある時点で強制的に閉じる。
この場合、プログラマーはどうするか。
- インジケーターをチェックし、OKが出れば注文を出す。
- ポーズが出れば手仕舞いする。
- 注文があり、利益が出れば手仕舞いする。
これらの関数を呼び出す順番は自由です。例えば
OnTick()
{
OpenOrder()
TralPos()
CloseProfit()
} のように、OnTickのチェックに配置すれば十分です。
つまり、TralPosはそれ自体で独立して おり、他の2つの関数が存在しても、その動作に何ら影響を与えません。必要なチェックはすべてこの中で行われます(ポーズの検索、ストップの修正など)
同様にCloseProfitも独立しています。
このような関数を数十個書いたわけですが、これらは独立しており、アルゴリズムのアトミックな動作を 実行します。
そして、それらをパラメータ付きテストファイルを通して設定する方法を作り、 再コンパイルすることなく 関数(ひいてはExpert Advisor)のパラメータを変更できるように しました。
このような感じですか?
参考文献の表を文書にまとめて、記事に添付することは可能でしょう。
好みの問題だが、記事の中にあれば迷子になることはないだろう。
記事の内容を理解するために、自分自身で論文を作成することにしました。
ディミトリ、間違っていたら訂正してくれ。
つまり、専門家の仕事は州をチェックすることだ。すべてだ。そうです。
各ティックで、すべての局面の関連性がチェックされる。
そして、その時点で関連性のある状態があれば、その状態に対してマクロが規定することを行う。
はい。マーケット・アクションが実行される場合、それは1つでなければならず、それが最初に来なければならない。未決注文が設定された 場合、Expert Advisorはその存在を確認してから設定する。
複数のマクロが同じ状態を処理したり、2つのマクロが競合してはいけません(たとえば、1つがクローズし、2つ目がすぐにオープンすると、「喧嘩」になります)。
衝突はあってはならない。しかし、より便利であれば、同じフェーズに対して複数のマクロがあってもよい。例えば、相場のポジションがある場合、一方に指値注文、もう一方に逆指値注文を書くこともできますし、1行に逆指値注文と指値注文の両方を書くこともできます。
つまり、Expert Advisorのタスクは、常にループを実行し、指定されたマクロ(ファイルなどに記述したもの)を すべて チェックし、その条件が満たされたときにそのマクロが指定することを実行することです。
はい。
例えば、簡単なストラテジー(インジケーターストラテジーでも可)があるとします。
MAがクロスしたら注文を出す。そしてそれを使う。そして、どこかの接頭点で強制決済する。
そうです。
この場合、プログラマーはどうするか。
- インジケーターをチェックし、インジケーターがシグナルを出し、ポジションがなければ注文を出す。
インジケータのシグナルはあるが、ポジションはない。
- ポーズがある場合のトロール機能。
これは別のフェーズとして記録できる。フェーズ識別 - マーケットポジションの存在。対応するアクションは、トロール関数のコールである。
- 注文があり、その注文に利益がある場合。
これが第3フェーズ。ポジションがあり、その利益が指定された値より大きい。アクションは、ポジションをクローズすることである。
これらの関数を呼び出す順序は自由である。例えば、OnTickのチェックに置くだけで十分です。
また、メタプログラムのファイルでは、異なる順序で行を配置することができます。
OnTick()
{
OpenOrder()
TralPos()
CloseProfit()
} このように、関数自体は独立しています。
つまり、関数自体は独立している。
メタプログラムのファイル内の行も独立していることがわかります。
つまり、TralPosはそれ自体独立しており、他の2つの関数の存在はその動作に影響を与えないということです。必要なチェックはすべてこの中で行われる(ポーズサーチ、ストップ修正など)。
メタプログラムの1行も自己充足的である。
同様に、CloseProfitも自己充足的である。
つまり、あなたは、独立した、アルゴリズムのアトミック操作を 実行するこのような関数を数十個書いたことになります。
そして、 リコンパイルすることなく 関数(ひいてはExpert Advisor)のパラメータを変更できるように、パラメータを持つテストファイルを通してそれらを設定する方法を作りました 。
これらの関数は組み合わせることができます。
こんな感じでしょうか。
ひとつ誤解を招きそうなことがある。私は記事の中で、アクションとステートの違いを何となくぼかしてしまった。相場の局面を見極める際に取るべき行動はアクションと呼ぶべきでしょう。また、未決注文を設定する必要がある場合は、状態記述と呼ぶ方が正しいでしょう。フェーズは、主にマーケットポジションのコメントによって識別され、この フェーズは、アクション(マーケットポジションのオープン/クローズ)または状態(いくつかの保留中の注文の存在)のいずれかに対応 します。マーケットアクションの場合、その実行後に別のフェーズに移行することが想定されます。注文を正しくマークすることが重要です。しかし、1つのフェーズの中で、マーケット・アクションと注文の設定の両方が存在する可能性があります。マーケット・アクションが失敗した場合、それ以降のすべては執行されません。 成功すれば、1ティックで可能な限り多くのことを行おうとする場合、それは執行されます。注文は設定されないかもしれませんが、マーケット・アクションは完了します。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 オーダーストラテジー多目的Expert Advisor はパブリッシュされました:
この記事では、未処理のオーダーを有効に活用するストラテジーや、それを表すためのメタ言語やそれに基づき動作する多目的ExpertAdvisorを中心に見ていきます。
どのようなトレーディングストラテジーでも、最初の重要な要素はポジションを取るための価格分析とテクニカルインディケーターの分析です。それを市場分析と呼びましょう。つまり、マーケットで起こるすべてのことで、自分たちのコントロールの外あるもの。
さらに、ストラテジーには他のタイプの分析も必要になります。それを現在の取引環境の分析と呼びましょう。それはトレードポジション の分析と、有効な/無効な未処理のオーダー(ストラテジーで使用されるもの)の分析から成ります。その結果により、ポジションやオーダーに対するアクショ ンを決定します。例えば:ポジションを閉じる、ストップロス、オーダーを出したり、取り消したりなど。言い換えれば、マーケット動向の理解や、それ(ある いはExpert Advisor)に応じたアクションや使用しているストラテジーのルールとなります。r
良く知られた、ある程度までの、トレーリングストップはトレーディングストラテジーの2つ目の要素と考えられます。次の分析について考えてみてくだ さい:もしも、設定した値よりも多く利益のあるポジションがある場合、ストップロスがセットされていない、あるいは設定されたよりも現在のプライスから離 れている場合、ストップロスを移動する。
トレーリングストップは人気のあるシンプルな機能です。また、ポジション管理機能であり、トレーディオングストラテジーの全く異なるカテゴリーに分類されます。このように、トレーディングストラテジーは3つのカテゴリーに分かれる要素で構成されています:
市場分析とそれに基づくアクション。
取引環境の分析とそれに基づくアクション。
ポジション管理。
この記事では、未処理のオーダーを有効に活用するストラテジー(短くオーダーストラテジーと呼びましょう)や、それを表すためのメタ言語やそれに基づき動作する多目的ツール(ExpertAdvisor)を中心に見ていきます。
作者: Dmitry Fedoseev