"ダミー "からの質問 - ページ 132

 
Yedelkin:

他のインジケータのデータも計算したい場合は、以下の方法で行います。まず、独自のデータ計算方法を持つ別のインディケータを作成し、このインディケータのハンドル(MQL5 Reference Guide / Technical Indicators/ iCustom )を取って、このハンドルを新しいインディケータで使用します。例をよく見てください。例題についてご質問がある場合

疑問がある。 まだ理解できていない。
では、Custom Moving Average.mq5をベースにしてみましょう。

新しいスムージングプロシージャMODE_MYMAを追加する - 問題ありません。

別のインジケータのi-castを使うのでしょうか? 第二フォームで作ったインジケータを例にとると(第一フォームで作ったインジケータだと・・・ハイローの取り方がわからない・・・第二フォームだけってこと?)

よし、宣言しよう

int newHandl;

onInitで定義する(放物線状、つまり何でもいい、メインは2番目のタイプでしょ? 私のはどう実装するか理解している)。

newHandl=iCustom(_Symbol,0, "ParabolicSAR.mq5",0.02,0.2);

そして、onCalculateで、標準価格の代わりに、その価格を入力するのですか?

CalculateEMA(rates_total,prev_calculated,begin,newHandl);?・・・・・・?

それとも何ですか?(((((

ループ、データ(何でも!)の取得、スムージング、出力というシンプルなものです。
しかし、ここで...。何をつかめばいいのかわからない...。

 
GameOver:

(第1形態でインジケータを作った場合...どこからハイローを取るのかが分からなかったので...第2形態のみということでしょうか?)

そうですね、ハイローについては、あくまで自分で記事を扱う場合の例です。 最初の形は、close[i]/2 [またはsqrt(close[i]/2)] という線を引くというタスクを取ればいいのです。一般に、配列も1つでたくさんのバリエーションを考えることができます。

GameOver

よし、宣言しよう

int newHandl;

は、onInitで定義します(例として、放物線を描きます。)

newHandl=iCustom(_Symbol,0, "ParabolicSAR.mq5",0.02,0.2);

それでいいんです。これから完成させます。

インジケーターのハンドルが正しい場合は、このインジケーターのバッファにアドレス指定できることを意味します。MQL5 Reference / Technical Indicators / iCustomの例をもう一度見てください。 線があります。

//--- скопируем значения индикатора Custom Moving Average в наш индикаторный буфер
   int copy=CopyBuffer(MA_handle,0,0,rates_total,Label1Buffer);

今度はMQL5 Reference / Access to Timeseries and Indicators / CopyBuffer(...繰り返しになりますが、例を一行ずつ解析していくといろいろなことが分かってきます)を読んでみてください。

選択した任意のインジケータ・バッファのデータを受信してみる。私は端末を持っていませんが、パラボリックでは、どのバッファが計算されているか、その番号も確認することができます。

Документация по MQL5: Технические индикаторы
Документация по MQL5: Технические индикаторы
  • www.mql5.com
Технические индикаторы - Документация по MQL5
 

ArrayIsSeries()ArrayGetAsSeries()関数の説明について質問です。

リファレンスマニュアルには、「関数に渡された配列は価格データを反映している、つまりこれらの配列は時系列符号を持ち、 ArrayIsSeries()関数は これらの配列をチェックすると真を返す 」というような文言があるのです。しかし、それでも、いずれにせよ、 インデックスの方向は 関数 ArrayGetAsSeries() でだけ確認する必要が あります".

直訳すると、ArrayIsSeries() 関数が真を返しても(つまりチェック対象の配列が時系列配列であることを確認しても)、インデックスの方向はArrayGetAsSeries() 関数によってのみチェックされるべきであるということになります。それなら、ArrayIsSeries() 関数の結果を追加でチェックしなければならないのであれば、導入する意味がわかりません。何が言いたいの?配列が時系列であっても、インデックスの方向が時系列と同じにならない(AS_SERIESフラグが設定されない)ことはあり得るのでしょうか?

 


Mql4からMql5へ移植する際、Lotエラーが発生するようになりました。

'Lot' - 定数は変更できません。

input double Lot = 0.1; // Lot

if (MartingaleType ==7)
 {
 if (Counter1==1)
 Lot=Lots() ;
}

修正方法は?


 
Dark.Angel:


Mql4からMql5へ移植する際、Lotエラーが発生しました。

'Lot' - 定数は変更できません。

どのように修正するのですか?

無理でしょう。バグではなく、機能です。:)

mql5では、入力変数は変更不可(const)です。

簡単なデカップリングを作る。

input int x=5;
input double StartLot = 0.01;

int X;
double Lot;
...
...
void OnInit()
  {
   ....
    X=x;
    Lot=StartLot;
   .......
  }
.....
void OnStart()
  {
   ....
   Lot=Lots();
  }
 

MQL5マニュアル/ 配列操作/ ArraySetAsSeriesの項に、ArraySetAsSeries() 関数が const datetime 配列&time[]にtick毎に適用される場合の例があります

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[])
  {
//---  будем хранить время открытия текущего нулевого бара
   static datetime currentBarTimeOpen=0;
//--- перевернем доступ к массиву time[] - сделаем как в таймсерии
   ArraySetAsSeries(time,true);
//--- return value of prev_calculated for next call
   return(rates_total);
  }

これは、配列を時系列で扱うために、誰もがやっていること(tickごとに 配列を反転させる)でしょうか。

もう一つの質問:OnCalculate() で使用される配列は、インデックスの方向を任意に変更できますか?それとも、この方向は一度確認すれば十分なのでしょうか?

 


Mql4 から Mql5 への移植時にエラー SymbolInfoDouble:
'SymbolInfoDouble' -関数 呼び出しにオーバーロードのいずれかを適用できない

на Mql4:
double a = balance / MarketInfo (Symbol (), MODE_MARGINREQUIRED) - 0.2 ; 

на Mql5:
double a = balance / SymbolInfoDouble(Symbol(), 0) - 0.2 ;

どうすれば修正できますか?
 
Dark.Angel:


Mql4からMql5へ移植する際、SymbolInfoDoubleエラーが発生するようになった。
'SymbolInfoDouble' - 関数呼び出しに適用できるオーバーロードは一つもありません。


どうすれば修正できますか?

なぜ、一番下に0があるのですか?

https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_double

さらに、これに加えて、0による除算をチェックします。

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 

ストラテジーテスターの結果がチャートで表示されます。


チャートの色の違いが何を意味するのか、どこで調べられるか教えてください。

 
pusheax:

ストラテジーテスターの 結果がチャートで表示されます。

チャートの色の違いが何を意味するのか、どこで調べられるか教えてください。

青いのが利益、赤いのが損失です。でも、左上のは疑問しかない...。