MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 798

 
Roman Sharanov:

一も二もない

ここで聞いて ください。

 
Artyom Trishkin:

ここで聞いて ください。

それがあれば、それはユーロで、ユーロ円で、オージーで、矢印を描画する必要があります、それはありません他の人に

ファイル:
Hydra.mq4  9 kb
 
Roman Sharanov:

それがあれば、それはユーロで、ユーロ円で、オージーで、矢印を描画する必要があります、それはありません他の人に

あくまで推測ですが。

そんな価値観が設定されているのです。

input int so_slowma = 233;//Медленная МА

そして、OnInit()で。

   //---- установка номера бара, начиная с которого будет отрисовываться индикатор 
   SetIndexDrawBegin(0,so_slowma);
   SetIndexDrawBegin(1,so_slowma);

日足のバー データが計算に使われているようですが。

if(so > so_minsize && fto > fto_minsize && fo[1] < 0 && fo[0] > 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_1[i+1] = Low[i+1] - 10 * Point;  
if(so < -so_minsize && fto < -fto_minsize && fo[1] > 0 && fo[0] < 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_2[i+1] = High[i+1] + 10 * Point; 

描画の ない記号に十分なバーが あることは確認されていますか?so_slowma 変数に小さい値(少なくとも100)を入れてください。レンダリングが発生するのであれば、過去のデータが足りないということですね。

初めてコードを見たときに思い浮かんだ思い込みです。そして、それは間違っているかもしれない。でも、まずは確認が必要です。

 

長方形https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_rectangle を、色を混ぜずに別の長方形の上に描画するにはどうしたらよいでしょうか。

例えばここでは、先に引いた水平線の上に後から引いた水平線が、色を混ぜずに描かれていますが、長方形との違いは何なのかわかりません。

ありがとうございます。

OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Следующий скрипт создает и перемещает на графике прямоугольник. Для создания и изменения свойств графического объекта написаны специальные функции, которые вы можете использовать "как есть" в своих собственных программах. //| Cоздает прямоугольник по заданным координатам                    |               time1=0,           ...
 
Artyom Trishkin:

あくまで推測ですが。

そんな価値観が設定されているのです。

とし、OnInit()の中で説明します。

日足のバー データが計算に使われているようですが。

レンダリングが ないシンボルに十分なバーが あることは確認されていますか?so_slowma 変数に小さい値(最低でも100)を入れる。レンダリングが発生するのであれば、過去のデータが足りないということですね。

初めてコードを見たときに思い浮かんだ思い込みです。そして、それは間違っているかもしれない。でも、まずは確認が必要です。

つまり、コードのどこかで日足チャートからデータを取っているため、インジケータが最初の233日間を描画しないのでは?
 
Roman Sharanov:
つまり、コード内で一度日足からデータを取っているため、インジケータは最初の233日間を描画しないのでは?

いいえ、そんなことはありません。この値は、インジケータがどのバー番号からチャート上に描画を始めるかを示します。しかし、このバーの数は移動平均を 計算するために使用されます。チャート内のバーが少ない場合、MAは計算されません。このような事態を避けるため、73行目には、計算対象のバーがない場合にOnCalculate()から戻るというコードが含まれています。

if (Bars <= so_slowma) return (0);

まあ、日次のデータについては......無いかもしれませんが、「歴史の続き」というか......。

 
Artyom Trishkin:

いいえ、そんなことはありません。この値は、インジケータがどのバー番号からチャート上に描画を始めるかを示します。しかし、このバーの数は移動平均を 計算するために使用されます。チャート内のバーが少ない場合、MAは計算されません。このような事態を避けるため、コード中の73行目に、計算のためのバーがない場合はOnCalculate()から戻るように記述しました。

まあ、日次のデータについては......それもないかもしれませんが、「歴史の続き」というか......。

例えば、ポンドは日足とm15で1000本以上のバーがあるが、描画されない...。

 
Roman Sharanov:

例えば、ポンドは日足でもm15でも1000本以上ありますが、描画されませんね...。

ソースコードを持っているんですね。ログにあるすべての変数の値をプリントアウトして、何が得られるか見てみましょう。

 
Artyom Trishkin:

ソースコードを持っているんですね。ログにあるすべての変数の値をプリントアウトして、何が得られるか見てみましょう。

これはどこから来ているのでしょうか?


 
Roman Sharanov:

これはどこから出てくるのでしょうか?


バッファーにゴミを入れる。まず、描画するすべてのバッファ(矢印バッファの場合)に空値を入力し、その後にインジケータの計算を 実行するだけです。携帯からだとコードが見えないので正確には言えませんが。