記事"初心者のためのMQL5のカスタムインディケーター"についてのディスカッション

 

新しい記事 初心者のためのMQL5のカスタムインディケーター はパブリッシュされました:

初めての人にはどんな新しいテーマも複雑で学ぶのが難しいように見えます。知っているテーマはシンプルでわかりやすく感じます。しかし、だれもが母国語さえも最初から勉強しなければならないことを単に忘れがちです。自分のトレーディングストラテジーを策定する上で幅広い可能性を提供するMQL5プログラミング言語でもそれは同じです。- 基本的な考えを最もシンプルな例から学びましょう。本記事ではテクニカルインディケーター とMetaTrader 5 クライアントターミナルの相互作用をシンプルなカスタムインディケーター SMAの例を用いて考えます。

作者: Nikolay Kositsin

 
これからサッカーを始める人にとって、とても興味深い記事だ。他の人がこのようになることを願っています。
 
脚本とナレーションはA。この本を読んだら、自分でも何か作ってみたくなるだろう。毎回コードを書き直すのはあまり面白くないので、MQL5の作者たちはこのことに気づいて、組み込み関数の大規模なライブラリを作成した。そのうちの1つを紹介しよう:

int iMA(
string symbol, //シンボル名
ENUM_TIMEFRAMES period, // 期間
int ma_period, // 平均化期間
int ma_shift // インジケータ水平シフト
ENUM_MA_METHOD ma_method, // スムージング・タイプ
ENUM_APPLIED_PRICE applied_price // 価格タイプまたはハンドル
);
を使っても同じ結果が得られる。しかし短い形式のint OnCalculate()を使用する場合、どのようにapplied_priceを取得するか。言い換えれば、インジケーターを初期化する際に、「パラメータ」タブの値を取得する方法を教えてください。

ありがとうございます。

 
私のような初心者にはとても分かりやすい説明でした。次の記事を待っています.
 

ありがとうございます。とてもわかりやすく、初心者にとって役に立つ内容です。

 

if(prev_calculated==0)// インジケータの最初の開始をチェック
first=MAPeriod-1+begin;// すべてのバーの開始インデックス
else first=prev_calculated-1;// 新しいバーの開始インデックス

whenfirst=MAPeriod-1+begin; 現在のバーが [0] か [rates_total] か?

whenfirst=prev_calculated-1; 数値が大きいので繰り返し計算が必要か?

 
初心者のためのMQL5カスタム・インジケータ」の記事には、「インジケータは "逆順 "ではなく "増加順 "を使うのがよい」と書かれています。しかし、プログラムを延々と走らせ続ければ、いずれは無限大の方向に向かい、つまりインデックス番号のための(整数の)バッファはすぐに尽きてしまうのではないでしょうか?どのように対処するのですか?
Custom Indicators in MQL5 for Newbies
  • 2010.03.03
  • Nikolay Kositsin
  • www.mql5.com
Any new subject seems complicated and hard-to-learn for a newbie. Subjects that we know seem very simple and clear to us. But we simply do not remember, that everyone has to study something from scratch, and even our native language. The same is with the MQL5 programming language that offers wide possibilities of developing one's own trading strategies - you can start learning it from basic notions and simplest examples. Interaction of a technical indicator with the MetaTrader 5 client terminal is consider in this article on the example of the simple custom indicator SMA.
 

記事をありがとう!初心者にとても役立つ資料です。また、
、他の言語から移行する人にとっても。

 

コンピュータが翻訳?何とかしろ。

MQL4と比べると、メトリクスの配列の添え字は過去から計算されたもので、動的ではなく固定です。1週間とか1ヶ月とか実行したらどうなるんだろう?データはすべてメモリ上にあるのだろうか? もしすべてメモリ上にあるのなら、動作はどんどん遅くなるのでは?

しかし、 https://www.mql5.com/zh/articles/31中又说:

  1. 「要素のインデックスを時系列として設定することはMQL4と同じです。この例では、要素のインデックスを時系列として 使用しています。言い換えれば、現在の列(まだ形成されていない)は常にインデックス[0]を持ち、前の列(すでに形成されている)はインデックス[1]を持つ、ということです。

ほとんどのMQL4の例では現在を0とする添字配列を使用しており、ほとんどのMQL5の例では過去を0とする添字配列を使用しています。

MQL5 初学者:EA 交易技术指标使用指南
MQL5 初学者:EA 交易技术指标使用指南
  • 2013.09.04
  • Sergey Pavlov
  • www.mql5.com
为在EA 交易中获得内置或自定义指标的值,首先应使用相应函数创建指标的处理函数。本文中的示例说明了在创建自己的程序时如何使用技术指标。在本文中说明的指标使用 MQL5 语言构建。本文的目标受众是那些在交易策略开发上不具备太多经验的读者,并旨在通过使用提供的函数库提供简单明了的指标使用方式。
 
DxdCn:

コンピュータが翻訳?何とかして。

MQL4と比べると、メトリクスの配列の添え字は過去から計算されたもので、動的ではなく固定です。1週間とか1ヶ月とか実行したらどうなるんだろう?データはすべてメモリ上にあるのだろうか? もしすべてメモリ上にあるのなら、動作はどんどん遅くなるのでは?

しかし、 https://www.mql5.com/zh/articles/31中又说:

  1. 「要素のインデックスをシーケンスとして設定することはMQL4と同じです。この例では、要素のインデックスを時系列として 使用しています。つまり、現在の列(まだ形成されていない)は常にインデックス[0]を持ち、前の列(すでに形成されている)はインデックス[1]を持ち、といった具合です。

MQL4のほとんどの例では、現在を0とする指標の配列を使用しており、MQL5のほとんどの例では、過去を0とする添え字付き指標の配列が使用されています。

ArraySetAsSeries()関数は、MQL5で動的配列(大きいインデックスの方向に最新の値を格納するためにメモリを確保する)を時系列形式に変換するために使用します。つまり、最新のデータはインデックス0に格納され、次の最新のデータはインデックス1に格納され、...というように、最新のデータは永遠にインデックス0に格納されます。

copybuffer()関数で読み込み、インデックス0の位置から配列の後方要素の読み取りを開始するには、行の独自の定義の数をお読みください。

 

ニコラスです!

Mass[ i ]= Mass[ i+1]+A; (Aは変数)という式を使ってループの中でインジケータの配列を埋めようとすると、コンパイルはエラーなしで通るのですが、ウィンドウに添付すると、array out of range (配列のサイズが 不足しています)というメッセージが表示されるのはなぜでしょうか?