MT4からMT5への乗り換えの問題。正確には、MT5で一部のアルゴリズムをerrなしで実行できないことです。 - ページ 11

 

振り返りのための情報を提供します。

マーケットプレイスで公開されているEA開発の一部を見る。いくつかの記事も。

EAのブローカー選択要件にスプレッドの小ささを指定していることが多い。

また、私見ですが、MT5は市場の変化に素早く反応するようにチューニングされている部分が大きいと思います。見積もり更新待ちのブレーキが全てOFFになっているのは、このためです。

相場の更新があった場合、端末が時系列へのアクセスを拒否することを意味します。一部の高速アルゴリズムの邪魔をしないこと。

このパラダイムは、存在する権利があるのです。この場合、取引は短時間です。素早く入力されます。ポイントを集める素早く退出する。

しかし、もうひとつのパラダイムがあります。

市場には、相場の反転が形成される極端な状況もある。

これらの極限状態は、数年前にも形成されている可能性があります。しかし、それらは現在の市場の状況に影響を与え続けています。

この場合、ティックまたはミニッツヒストリーの瞬間的な変化を考慮することができる。しかし、それらは決定的なものではありません。

この場合、アクセス遮断によりハンドラを終了させることなく、引用符の更新を待つことができる。しかも、MT4だけで動作する。

いくつかの写真に解説が添えられています。

毎月のtfをとっています。1995年3月、2000年10月、2007年7月の極端な現象は、引き続き市場に影響を及ぼしている。

1985年2月の極値でも効果がある。


これらの極値で作られたラインは、市場から注目されていることがわかる。

他の時間枠に移動してみましょう。だいたい、波動マークアップをするような比率で。この選択により、各TFで1つの波動レベルが開発される可能性があります。

週刊tf:

D1:

H4:

M30:

M5:

M1:

過去に形成された極値が、現在の市場のモメンタムに影響を及ぼしていることがわかります。

----------------------------------

このような建設物の見積もりには、継続的にアクセスできる必要があります。

さらに続けます。基本的に写真に写っているものはすべてマニュアル取引で使用されるものです。

でも。写真のように、複数のニューラルネットワークの入力に異なる時間軸の相場を与えることが可能です。各NSが独自にデータを処理する。そして、その出力に、何が起こっているのかについての独自の理解を与える。ニューラルネットワークの出力は、バーの受信時刻に同期して行われます。

この場合、優先順位の高いNSからの信号は、低いNSからの信号よりも優先される。

ニューラルネットワークからの受信信号は、優先順位をある程度考慮した上で、以下のNSの入力に供給される。ここにはバリエーションがあるかもしれません。

第1層のニューラルネットワークは、例えば、LSTM型であってもよい。この場合のレイヤーとは、時間枠からそれぞれの相場を取得するニューラルネットワークのことです。第1層の各ニューラルネットワークは、数層のニューロンを持つことができる。

和算ニューラルネットワークは、独自のアーキテクチャを有していてもよい。これは、どちらかというとエンジニアリングの仕事です。

例えば、トレードの開始を何らかのアルゴリズムで訓練することが可能です。ニューラルネットワークの第1層ではつまり、第1層の各ニューラルネットワークを個別に学習させる。例えば、対応するレイヤーのバーが終了した時点で取引を開始します。異なる方向で取引を開始することも可能です。トレードは条件付きです。 そのディールが終わると、NSを鍛えるための信号が送られる。

このように、集合型ニューラルネットワークには、最適な取引モードを選択する権利が与えられている。

つまり、DeepMindeチームがAlfa Zeroに実装したアルゴリズムにやや近いものが得られるわけです。

このようなネットワークは、選択されたすべての時間枠の履歴全体で訓練する必要があります。ただ一つ注意しなければならないのは、MT5のタイムスケールはすべて分足で表示されるということです。これは事実ではありません。 1993年までのユーロドルに関するNCCファイルは、時系列で作られている。真の時系列のタイムフレームを再構築するアルゴリズムがあるはずだ。

1つの通貨ペアでトレーニングすることができます。そして、もう一台でテストしてください。

------------------------------

概要なぜ、この手法では、市場で起きていることに素早く反応する必要があるのでしょうか?

 
Eugeni Neumoin:


オフトピックで申し訳ないが、話題が面白ければあきらめない


ビクト

まあ、こういうことです。

MQLにはtypename()があり、これは文字列の型名を返す。

void OnStart()
  {
   Print(typename(Txt()));      // в логе будет       string
  }
string Txt()
{
return(" Txt ");
}

MyFunc() 型を知る - マクロを書く ((, ....もちろん、_Try_helper型のマクロはすべて書くことができるのですが・・・。ふつうは、わたしは冒険をしないし、どうしたらいいかわからない。

 
Igor Makanu:

オフトピックもあって申し訳ないですが、面白い話題であれば辞められません


大丈夫です。

削除済み  
Igor Makanu:

MQLにはtypename()があり、これは文字列の型名を返す。

MyFunc() 型を知る - マクロを書く ((, ....もちろん、_Try_helper型のマクロはすべて書くことができるのですが・・・。まあ、私はギャンブラーではないのでしょう、どうすればいいのか分からないので。

µl の typename() は役に立ちません。コンパイル時に変数の宣言に 適した型を与えず、それを表示するだけだからです。このため、Try_d()、Try_i()、...が残されています。.µlでdecltype機能を実現する方法がわからない。

 
Vict:

µl の typename() は役に立ちません。コンパイル時に変数の宣言に 適した型を与えず、ただそれを表示するだけです。このため、Try_d()、Try_i()、...のみが残されています。.µlでdecltype機能を実現する方法がわからない。

うーん、全然ギャンブラーって感じがしない!絶対ギャンブラーって言ってもいいくらいだ。)))- どうなんでしょうね、そうやって何かが動いていくんでしょうね(機械レベルで「全回転」なのは本当に理解できません。厳密な型付け言語があるんでしょうか?)

void OnStart()
{
  int i = func(1);
  double d = func(1.123);
  string s = func("s");
  Print("i = ",i);
  Print("d = ",d);
  Print("s = ",s);
}

template<typename T>
T func(T invalue)
{
   string s = typename(T);
   if(s=="int") return(invalue);
   if(s=="double") return(invalue);
   if(s=="string") return("Hello word!!!");
return(NULL);
}

2019.07.31 21:07:05.304 tst2 (EURUSD,H1) i = 1

2019.07.31 21:07:05.304 tst2 (EURUSD,H1) d = 1.123

2019.07.31 21:07:05.304 tst2 (EURUSD,H1) s = Hello word!!!!


へのポインタを記述することもできます。

typedef void(*TFuncvoidPTR)(void);

を使い、さらに

TFuncvoidPTR      func[];
....
func[0]();
 
Vict:

µl の typename() は、コンパイル時に変数宣言に 適した型を与えず、それを表示するだけで、何の役にも立ちません。あとはTry_d()、Try_i()、...を掛け合わせるだけです。.µlでdecltype機能を実現する方法がわからない。

静的なT型変数を持つテンプレート関数です。

 
Igor Makanu:

ありがとうございました。

あなたの投稿を読みました。残念ながら、多くの点であなたの言うとおりです。昨日、このスレッドでモデレーターのArtemと多くのやりとりをしました。その結果、「そのように実装されているなら、そのように動作するはずだ」と...。一般的には、昔の広告のように「焼き方を知らないだけ!

MQL5コンパイラの成果は本当に素晴らしい(非常に生産的!)ですが、トレーディングターミナルとしての 使用は・・・。つまり、「古い端末で」よりも30%以上多くのコードを書くためには、非常に優れた技術的訓練と意欲が必要なのです(この表現も、フォーラムではよく使われる表現です)。

アイアイアイ...。そうとは言ってませんよ :)

私が言いたかったのは、「欲しい結果を得るために、今あるものを使う」ということです。

それ以外の感情は自分の中にしまっておく。

 
Igor Makanu:

司会のアルテムがそんなことを言ったとは言っていません、私は会話の結果を書いただけです、それは私の感情や会話の分析に基づいてのみ形成できる、私の判断だと思います.))))

つまり、人の頭の中はわからない、自分の頭の中しか見えない...。幸いにも今は鏡の中 )))

の代わりになら、信じていたかもしれません。

という会話の結果、そのように実装されているのであれば、うまくいくはずだ...と。昔の広告のように、「あなたは 料理の仕方を知らないだけです!」。

ワズ

私の結論 は、「そのように実装されているのであれば、それでいいのでは......」ということです。昔の広告のように、" 調理法がわからないだけ!"と。

そして、その鏡に映った1つの首が、司会者であるはずのアルテムの引用であることが判明したのです。

そして、プライベートでの会話であれば良い。しかし、言ってもいない私の言葉を公に結論づけることは、私の完全に間違った意見と疑われるものを公にはめ込むことであり、私は引用文で言われた意見とは全く異なるものを持っています。

自分の意見を言うことができる。

今あるものを最大限に活用し、泣き言を言わず、バグを見つけるのを手伝い、修正を期待してお願いしましょう-それらは修正され、新しい素晴らしい機能が現れます。

 
Artyom Trishkin:

の代わりなら信じます。

だそうです

しかし、その鏡に映った一人の頭には、司会者であるはずのアルテムが引用されていたのです...。

そして、プライベートでの会話であれば良い。しかし、私が言っていない私の言葉について公に結論を出すことは、私の完全に間違った意見であると疑われ、私を公にはめ込むことです-私は、引用文の中で述べられたとされる意見とは全く異なるものを持っています。

自分の意見を言うことができる。

私は文句を言うのではなく、バグを見つけて修正を依頼し、それが修正され、新しいクールな機能が登場していることに協力しているのです。

うーん、なんともややこしいことになったものだ......。後片付けをした、私の意見...開発者は自分の製品について独自のビジョンを持っており、それは彼らのビジネスであり、私の意見です...2日以内にスレッドを更新しないと、トップから大きく外れてしまいます。


...どのようにそれが変更されます...まあ、今日、良い男@ Victは- 私にいくつかの簡単なデバッグ技術を示した、そして最も重要なのは - 私は私のコードの可読性を達成することができます - これはMQL5、一般的に、フォーラムのメンバーについての私の意見を変更しました。

もう黙ります、幸い歴史のある掲示板があります、この掲示板の検索で私の質問に対する回答が多すぎて遡ることができません。

削除済み  
Igor Makanu:

fxsaberが 正しい - 1つの 選択肢があります。

 template <typename T> T Try_helper(T val, bool assign) {
   static T sval;
   if (assign)
      sval = val;
   return sval;
}
#define  Try(EXPR, MES)                    \
   Try_helper(EXPR, true);                \
   if (Try_helper(EXPR, false) <= 0.0) {  \
     printf("Error: %s ", MES);           \
     return;                              \
   }

double f(double) {return DBL_MAX;}
ulong f(ulong) {return ULONG_MAX;}

void OnStart()
{

   double d = Try(f(0.), "double error");
   ulong u = Try(f(0), "ulong error");
}

EXPRが2回計算されるなど、ちょっとキッチュな感じもしますが、それでも柔軟性は高いと思います。普遍的とは言い切れない(算術型のみ。誤差の値が等しくなければならないので、不愉快です。構造・機能を明示的に特殊化することで回避しようとしましたが、不可能な場合もあります。

template <typename T> bool Try_helper_is_valid(T val);
template <> bool Try_helper_is_valid<string>(string val) {val==""?false:true;}  // compile-time error

template <typename T>
struct S;
template <>
struct S<string> {...};      // compile-time error

まあ、μlのどこを掘ってもトラップがありそうですが。おそらく、固定型の小さな高度に専門的なマクロに限定するのがよいでしょう。