MQL5への願い - ページ 99

 
Henry_White >> :

今後のリリースに期待すること。

  1. ティックハンドラのコンテンツ外でプロシージャを実行する機能(MT4ではstart()です。)(例:別トラックで、統計計算や最適化のためなど)。
  2. マウスを操作するための最もシンプルな機能です。例えば、「OnClick」イベントで、MT次元のポインタ座標(Xはバーインデックス、YはカレントウィンドウのY座標)を取得することが可能です。

1.今、それを阻むものは何か?

2.MQL5では、EAがウィンドウイベント(EMNIP)を処理できるようになります。

 
TheXpert >> :

1.今、邪魔なものは何ですか?

もし、その方法をご存知でしたら、この技術や知識を教えていただけると幸いです。

 
TheXpert >> :

2.MQL5では、Expert Advisorsがウィンドウイベント(EMMNIP)を処理することができるようになります。

ちなみにChartEvent イベントハンドラはEAでしか使えません...。なかなか不思議な差別ですね )))インジケータでも必要性は同じだと思います(Expert Advisorには必要ありません)。

 
Henry_White >> :

まあ、もし方法を知っているならば、その技術・知識を教えてもらえるとありがたいのですが。

アスファルトの上に指を2本置くようなことはできませんが、できますよ。dllを接続し、新しいスレッドで計算を呼び出す - WinAPIはここで役立つ、タイマーまたはコールバックで終了します。

Henry_White>>:

ちなみに、ChartEvent イベントハンドラはExpert Advisorでのみ利用可能になる予定です...。なかなか不思議な差別ですね ))

私も好きではありません。しかし、今は指標とチャートが連動していない。

 
TheXpert >> :

アスファルトの上に指を2本置くようなことはできませんが、可能です。dllを接続し、新しいスレッドで計算を行い、タイマーまたはコールバックで終了します。

私はDLLのバリエーションを考えていましたが、時系列、さらに10種類以上の指標の値、そしてこれらすべての履歴の深さへの正確なアクセスを得る方法は、私にはよくわかりません。また、計算時間が1分以上かかることを考えると(私は分単位で仕事をしています)、クライアント端末に新しいバーを追加した後、DLLがどこのポインタを参照するのか、まったくもって不明です。そして、数十個の計算されたパラメータを返し、価格シリーズに様々なチャートを追加する必要もあります。些細なことではありません、全てにおいて...。

これだけ見て、実験や各種チェック、デバッグにどれだけの時間がかかるか見積もって、MQLでタイムクラスター処理を書いてみたのですが...。動作はするけどいい加減なものです。しかし、私の魂はそれを要求している!)))しかも、もう21世紀だというのに...。そして、年齢に恥じない生き方をしたいものです。 ))

 

ポイント」の概念を明確にする(定義する)ことを提案します。

1ピップは有効数字の5桁目、1.2345です

気配値がもう一桁(1.23456)、スプレッド=0.00018で表される場合、pips単位のスプレッドは18pではなく1.8 pとなります。

これにより、用語の統一を図り、混乱を避けることができます。

 
SK. >> :

ポイント」の概念を明確にする(定義する)ことを提案します。

1ピップは有効数字の5桁目、1.2345です

気配値がもう一桁(1.23456)、スプレッド=0.00018で表される場合、pips単位のスプレッドは18pではなく、1.8 pとなります。

そうすることで、用語の統一を図り、混乱を避けることができます。

ブローカーはウェブサイトに「スプレッド1.8」と書いていますが、18ではありません - 彼らは自分が何をしているかを正確に知っています :)

 

Функция OnCalculate() вызывается только в пользовательских индикаторах
при необходимости произвести расчет значений индикатора по событию Calculate.

オブジェクトを使ったインジケータを、変更されたバーの数を知らずに作る方法がまだわかりません。

 

printf 関数があるんですね

とか、またsprintfが 手に入ったらどんなに素晴らしいか。



 
Roffild >> :

オブジェクトを使ったインジケータを、変更したバーの数を知らずに作る方法がまだわからない

MQL5のヘルプにはこう書かれています。

int OnCalculate (const int rates_total, // 入力時系列のサイズ)
const int prev_calculated, // 前のコールで処理されたバー
const datetime& time[], // 時間
const double& open[], // 開く
const double& high[], // 高さ
const double& low[], // Low
const double& close[], // 閉じる
const long& tick_volume[], // 刻み目のボリューム
const long& volume[], // 実音量
const int& spread[] // スプレッド
);

OnCalculate()が返す値と2番目の入力パラメータprev_calculatedの関係に注意する必要がある。 関数呼び出し時のパラメータ prev_calculated には前回の 呼び出し 時に OnCalculate() が 返した 値が格納 されます。 これにより、この関数の前回の呼び出し以降に変更されていないバーについて、計算を繰り返すことを避けるために、カスタム・インジケータを計算するための経済的なアルゴリズムが可能になります。

そのためには、通常、現在の関数呼び出しのバーの数を含む rates_total パラメータの値を返せば十分である。OnCalculate()の最後の呼び出し以降に価格データが変更された場合(より深い履歴がロードされたか、履歴の空白が埋められたか)、入力パラメータprev_calculatedの値はターミナルによってゼロに設定されます。