チャート定数

チャート定数

チャートのさまざまなプロパティを記述する定数は、次のグループに分類されます。

  • イベントの種類 – チャート操作時に起こるイベント
  • チャート時間軸 – 内蔵された標準期間
  • チャートプロパティ – チャート関数のパラメータとしてつかわれる識別子
  • 位置定数 – ChartNavigate() 関数のパラメータ値
  • チャート表示 – チャート外観の設定

 

チャートイベントの種類

事前定義された OnChartEvent() 関数を使用して処理出来るイベントには 11 種類あります。カスタムイベントには CHARTEVENT_CUSTOM 以上 CHARTEVENT_CUSTOM_LAST 以下の 65,535 の識別子が提供されています。カスタムイベントの作成には EventChartCustom() 関数が使用されます。

ENUM_CHART_EVENT

ID

説明

CHARTEVENT_KEYDOWN

キーストローク。

CHARTEVENT_MOUSE_MOVE

マウスの移動、マウスクリック(チャートで CHART_EVENT_MOUSE_MOVE=true の場合)。

CHARTEVENT_MOUSE_WHEEL

マウスホイールの押下やスクロール (チャートでCHART_EVENT_MOUSE_WHEEL=True)。

CHARTEVENT_OBJECT_CREATE

作成されたグラフィックオブジェクト(チャートで CHART_EVENT_OBJECT_CREATE=true の場合)。

CHARTEVENT_OBJECT_CHANGE

プロパティダイアログで変更されたグラフィックオブジェクトのプロパティ。

CHARTEVENT_OBJECT_DELETE

削除されたグラフィックオブジェクト(チャートで CHART_EVENT_OBJECT_DELETE=true の場合)。

CHARTEVENT_CLICK

チャートのクリック。

CHARTEVENT_OBJECT_CLICK

グラフィックオブジェクトのクリック。

CHARTEVENT_OBJECT_DRAG

グラフィックオブジェクトのドラッグアンドドロップ。

CHARTEVENT_OBJECT_ENDEDIT

Edit グラフィックオブジェクトのテキスト編集の終了。

CHARTEVENT_CHART_CHANGE

プロパティダイアログでのチャートサイズやチャートプロパティの変更。

CHARTEVENT_CUSTOM

カスタムイベントの範囲からのイベントの初期番号。

CHARTEVENT_CUSTOM_LAST

カスタムイベントの範囲からのイベントの最終番号。

OnChartEvent() 関数の入力パラメータはイベントの種類ごとにイベント処理に必要とされる一定の値を有しています。パラメータで受け渡しされるイベントと値は以下の表に記載されています。

イベント

id パラメータ値

lparam パラメータ値

dparam パラメータ値

sparam パラメータ値

キーストロークイベント

CHARTEVENT_KEYDOWN

押されたキーのコード

繰り返し回数(ユーザのキーの長押しがキーストロークの繰り返しとみなされた場合の繰り返し回数)

キーボードボタンの状態を記述するビットマスクの文字列値

マウスイベント(チャートで CHART_EVENT_MOUSE_MOVE=true の場合)

CHARTEVENT_MOUSE_MOVE

X 座標

Y 座標

マウスボタンの状態を記述するビットマスクの文字列の値

マウスホイールイベント (チャートでCHART_EVENT_MOUSE_WHEEL=trueの場合)

CHARTEVENT_MOUSE_WHEEL

キーとマウスボタン、マウスポインタのX座標とY座標の状態のフラグ。下の例の説明を参照してください。

マウスホイールスクロールのデルタ値。

グラフィックオブジェクトの作成イベント(チャートで CHART_EVENT_OBJECT_CREATE=true の場合)

CHARTEVENT_OBJECT_CREATE

作成したグラフィックオブジェクトの名称

プロパティダイアログでのオブジェクトプロパティ変更イベント

CHARTEVENT_OBJECT_CHANGE

変更したグラフィックオブジェクトの名称

グラフィックオブジェクト削除イベント(チャートで CHART_EVENT_OBJECT_DELETE=true の場合)

CHARTEVENT_OBJECT_DELETE

削除したグラフィックオブジェクトの名称

チャート上でのマウスクリックイベント

CHARTEVENT_CLICK

X 座標

Y 座標

チャートに属するグラフィックオブジェクトでのマウスクリックイベント

CHARTEVENT_OBJECT_CLICK

X 座標

Y 座標

イベントが発生したグラフィック•オブジェクトの名称

マウスを使用してグラフィックオブジェクトのドラッグイベント

CHARTEVENT_OBJECT_DRAG

移動したグラフィックオブジェクトの名称

LabelEdit グラフィックオブジェクトの入力ボックスでのテキスト編集完成のイベント

CHARTEVENT_OBJECT_ENDEDIT

テキスト編集が完成した LabelEdit グラフィックオブジェクトの名称

チャートサイズの変更イベントやプロパティダイアログを通したチャートのプロパティの変更

CHARTEVENT_CHART_CHANGE

N 番号を使用したユーザイベントID

CHARTEVENT_CUSTOM+N

EventChartCustom() 関数で設定された値

EventChartCustom() 関数で設定された値

EventChartCustom() 関数で設定された値

例:

#define KEY_NUMPAD_5       12
#define KEY_LEFT           37
#define KEY_UP             38
#define KEY_RIGHT          39
#define KEY_DOWN           40
#define KEY_NUMLOCK_DOWN   98
#define KEY_NUMLOCK_LEFT  100
#define KEY_NUMLOCK_5     101
#define KEY_NUMLOCK_RIGHT 102
#define KEY_NUMLOCK_UP    104
//+——————————————————————+
//| エキスパート初期化に使用される関数                                        |
//+——————————————————————+
int OnInit()
{
//—
Print(“The expert with name “,MQL5InfoString(MQL5_PROGRAM_NAME),” is running”);
//— オブジェクト作成イベントを有効にする
ChartSetInteger(ChartID(),CHART_EVENT_OBJECT_CREATE,true);
//— オブジェクト削除イベントを有効にする
ChartSetInteger(ChartID(),CHART_EVENT_OBJECT_DELETE,true);
//— チャートプロパティを強制的に更新して、イベント処理の準備を整える
ChartRedraw();
//—
return(INIT_SUCCEEDED);
}
//+——————————————————————+
//| ChartEvent 関数                                                   |
//+——————————————————————+
void OnChartEvent(const int id,         // イベント識別子 
const long& lparam,   // long 型のイベントパラメータ
const double& dparam, // double 型のイベントパラメータ
const string& sparam // string 型のイベントパラメータ

{
//— チャート上でマウスの左ボタンが押された
if(id==CHARTEVENT_CLICK)
{
Print(“The coordinates of the mouse click on the chart are: x = “,lparam,”  y = “,dparam);
}
//— マウスがグラフィックオブジェクトでクリックされた
if(id==CHARTEVENT_OBJECT_CLICK)
{
Print(“The mouse has been clicked on the object with name ‘”+sparam+“‘”);
}
//—キーが押された
if(id==CHARTEVENT_KEYDOWN)
{
switch(lparam)
{
case KEY_NUMLOCK_LEFT: Print(“The KEY_NUMLOCK_LEFT has been pressed”);   break;
case KEY_LEFT:         Print(“The KEY_LEFT has been pressed”);           break;
case KEY_NUMLOCK_UP:   Print(“The KEY_NUMLOCK_UP has been pressed”);     break;
case KEY_UP:           Print(“The KEY_UP has been pressed”);             break;
case KEY_NUMLOCK_RIGHT: Print(“The KEY_NUMLOCK_RIGHT has been pressed”); break;
case KEY_RIGHT:         Print(“The KEY_RIGHT has been pressed”);         break;
case KEY_NUMLOCK_DOWN: Print(“The KEY_NUMLOCK_DOWN has been pressed”);   break;
case KEY_DOWN:         Print(“The KEY_DOWN has been pressed”);           break;
case KEY_NUMPAD_5:     Print(“The KEY_NUMPAD_5 has been pressed”);       break;
case KEY_NUMLOCK_5:     Print(“The KEY_NUMLOCK_5 has been pressed”);     break;
default:               Print(“Some not listed key has been pressed”);
}
ChartRedraw();
}
//— オブジェクトが削除された
if(id==CHARTEVENT_OBJECT_DELETE)
{
Print(“The object with name “,sparam,” has been deleted”);
}
//— オブジェクトが作成された
if(id==CHARTEVENT_OBJECT_CREATE)
{
Print(“The object with name “,sparam,” has been created”);
}
//— オブジェクトが移動されたか、アンカーポイントの座標が変更された
if(id==CHARTEVENT_OBJECT_DRAG)
{
Print(“The anchor point coordinates of the object with name “,sparam,” has been changed”);
}
//— 編集オブジェクトのテキストが変更した
if(id==CHARTEVENT_OBJECT_ENDEDIT)
{
Print(“The text in the Edit field of the object with name “,sparam,” has been changed”);
}
}

CHARTEVENT_MOUSE_MOVE イベントでは、キーボードとマウスボタンの状態に関する情報が sparam 文字列パラメータに含まれています。

ビット

説明

1

マウスの左ボタンの状態

2

マウスの右ボタンの状態

3

SHIFT ボタンの状態

4

CTRL ボタンの状態

5

マウスの中央ボタンの状態

6

マウスの追加ボタン 1 の状態

7

マウスの追加ボタン 2 の状態

例:

//+——————————————————————+
//| エキスパート初期化に使用される関数                                        |
//+——————————————————————+
void OnInit()
{
//— CHART_EVENT_MOUSE_MOVE メッセージを有効にする
ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1);
//— チャートプロパティを強制的に更新して、イベント処理の準備を整える
ChartRedraw();
}
//+——————————————————————+
//| マウスの状態                                                        |
//+——————————————————————+
string MouseState(uint state)
{
string res;
res+=“\nML: “   +(((state& 1)== 1)?“DN”:“UP”);   // 左ボタン
res+=“\nMR: “   +(((state& 2)== 2)?“DN”:“UP”);   // 右ボタン
res+=“\nMM: “   +(((state&16)==16)?“DN”:“UP”);   // 中央ボタン
res+=“\nMX: “   +(((state&32)==32)?“DN”:“UP”);   // 追加ボタン1
res+=“\nMY: “   +(((state&64)==64)?“DN”:“UP”);   // 追加ボタン 2
res+=“\nSHIFT: “+(((state& 4)== 4)?“DN”:“UP”);   // shift キー
res+=“\nCTRL: “ +(((state& 8)== 8)?“DN”:“UP”);   // control キー
return(res);
}
//+——————————————————————+
//| ChartEvent 関数                                                   |
//+——————————————————————+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_MOUSE_MOVE)
Comment(“POINT: “,(int)lparam,“,”,(int)dparam,“\n”,MouseState((uint)sparam));
}

CHARTEVENT_MOUSE_WHEEL イベントの場合、lparamパラメータとdparam パラメータは Ctrlキー及びShiftキー、マウスボタン、カーソル座標、およびマウスホイールのスクロール値の状態に関する情報を含みます。より良い理解のためには、このエキスパートアドバイザーをチャート上で実行し、マウスホイールをスクロールしながら、異なるボタンを押しながらコードに記載されているキーを押し続けます。

下記はCHARTEVENT_MOUSE_WHEELイベント処理の例です。

//+——————————————————————+
//| エキスパート初期化関数                                                |
//+——————————————————————+
init OnInit()
{
//— マウスホイールスクロールメッセージの有効化
ChartSetInteger(0,CHART_EVENT_MOUSE_WHEEL,1);
//— チャートプロパティを強制的に更新して、イベント処理の準備を整える
ChartRedraw();
//—
return(INIT_SUCCEEDED);
}
//+——————————————————————+
//| ChartEvent関数                                                    |
//+——————————————————————+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_MOUSE_WHEEL)
{
//— このイベントのマウスボタンとホイールの状態を考慮する
int flg_keys = (int)(lparam>>32);         // CtrlキーとShiftキー、およびマウスボタンの状態のフラグ
int x_cursor = (int)(short)lparam;         // マウスホイールイベントが発生したX座標
int y_cursor = (int)(short)(lparam>>16);   // マウスホイールイベントが発生したY座標
int delta    = (int)dparam;               // +120または-120に達したときにトリガーされるマウススクロールの合計値
//— フラグの処理
string str_keys=“”;
if((flg_keys&0x0001)!=0) str_keys+=“LMOUSE “;
if((flg_keys&0x0002)!=0) str_keys+=“RMOUSE “;
if((flg_keys&0x0004)!=0) str_keys+=“SHIFT “;
if((flg_keys&0x0008)!=0) str_keys+=“CTRL “;
if((flg_keys&0x0010)!=0) str_keys+=“MMOUSE “;
if((flg_keys&0x0020)!=0) str_keys+=“X1MOUSE “;
if((flg_keys&0x0040)!=0) str_keys+=“X2MOUSE “;

if(str_keys!=“”)
str_keys=“, keys='”+StringSubstr(str_keys,0,StringLen(str_keys)-1) + “‘”;
PrintFormat(“%s: X=%d, Y=%d, delta=%d%s”,EnumToString(CHARTEVENT_MOUSE_WHEEL),x_cursor,y_cursor,delta,str_keys);
}
}
//+——————————————————————+ /*
出力例
CHARTEVENT_MOUSE_WHEEL: Ctrl pressed: X=193, Y=445, delta=-120
CHARTEVENT_MOUSE_WHEEL: Shift pressed: X=186, Y=446, delta=120
CHARTEVENT_MOUSE_WHEEL:  X=178, Y=447, delta=-120
CHARTEVENT_MOUSE_WHEEL:  X=231, Y=449, delta=120
CHARTEVENT_MOUSE_WHEEL: MiddleButton pressed: X=231, Y=449, delta=120
CHARTEVENT_MOUSE_WHEEL: LeftButton pressed: X=279, Y=320, delta=-120
CHARTEVENT_MOUSE_WHEEL: RightButton pressed: X=253, Y=330, delta=120  */

チャート時間軸

事前定義されたチャート時間軸の全ては、一意の識別子を持っています。PERIOD_CURRENT 識別子は、MQL5 プログラムが実行されているチャートの現在の期間を意味します。

ENUM_TIMEFRAMES

ID

説明

PERIOD_CURRENT

現在の時間軸

PERIOD_M1

1分

PERIOD_M2

2分

PERIOD_M3

3分

PERIOD_M4

4分

PERIOD_M5

5分

PERIOD_M6

6分

PERIOD_M10

10分

PERIOD_M12

12分

PERIOD_M15

15分

PERIOD_M20

20分

PERIOD_M30

30分

PERIOD_H1

1時間

PERIOD_H2

2時間

PERIOD_H3

3時間

PERIOD_H4

4時間

PERIOD_H6

6時間

PERIOD_H8

8時間

PERIOD_H12

12時間

PERIOD_D1

1日

PERIOD_W1

1週間

PERIOD_MN1

1ヶ月

例:

  string chart_name=“test_Object_Chart”;
Print(“Let’s try to create a Chart object with the name “,chart_name);
//— オブジェクトが存在しない場合は作成する
if(ObjectFind(0,chart_name)<0)ObjectCreate(0,chart_name,OBJ_CHART,0,0,0,0,0);
//— シンボルの定義
ObjectSetString(0,chart_name,OBJPROP_SYMBOL,“EURUSD”);
//— アンカーポイントの X 座標を設定
ObjectSetInteger(0,chart_name,OBJPROP_XDISTANCE,100);
//— アンカーポイントの Y 座標を設定
ObjectSetInteger(0,chart_name,OBJPROP_YDISTANCE,100);
//— チャート幅を設定
ObjectSetInteger(0,chart_name,OBJPROP_XSIZE,400);
//— チャートの高さを設定
ObjectSetInteger(0,chart_name,OBJPROP_YSIZE,300);
//— 時間軸を設定
ObjectSetInteger(0,chart_name,OBJPROP_PERIOD,PERIOD_D1);
//— スケールを設定( 0 〜 5 )
ObjectSetDouble(0,chart_name,OBJPROP_SCALE,4);
//— マウスでの選択を無効化する
ObjectSetInteger(0,chart_name,OBJPROP_SELECTABLE,false);

時系列識別子 #

時系列識別子はiHighest()及びiLowest()関数で使用されます。これらは

ENUM_SERIESMODE列挙体の値と等しくなれます。

識別子

説明

MODE_OPEN

始値

MODE_LOW

安値

MODE_HIGH

高値

MODE_CLOSE

終値

MODE_VOLUME

ティックボリューム

MODE_REAL_VOLUME

実のボリューム

MODE_SPREAD

スプレッド

チャートプロパティ

ENUM_CHART_PROPERTY 列挙の識別子はチャート操作の関数のパラメータとして使用されます。「プロパティ型」欄にある r/o は read-only の略で、プロパティが読み込み専用で変更不可能であることを意味します。「プロパティ型」欄にある w/o は write-only の略で、プロパティが書き込み専用で受信不可能であることを意味します。特定のプロパティにアクセスする際には、チャートサブウィンドウの番号を示す追加パラメータ修飾子(修飾子)を指定する必要があります。0 はメインチャートウィンドウを意味します。

チャートのプロパティを定義する関数は、実際にチャートに変更コマンドを送信するのに使用されます。これらの関数が正常に実行された場合、コマンドがチャートイベントの共用キューに追加されます。チャートの変更は、チャートイベントのキューの処理時に実装されます。

従って、これらの関数の呼び出し後の、チャートの即時の視覚更新は期待出来ません。一般的には、チャートは、新たな相場の到着やチャートウィンドウのサイズ変更などの変更イベントの後に、端末によって自動更新されます。強制的にチャートを更新するには ChartRedraw() 関数を使用します。

ChartSetInteger() 及び ChartGetInteger() 関数

ENUM_CHART_PROPERTY_INTEGER

ID

説明

プロパティ型

CHART_SHOW

価格チャートを描画します。falseの場合、時間および価格スケール、クイックナビゲーションバー、カレンダーイベントラベル、取引ラベル、インディケータおよびバーツールヒント、インディケータサブウィンドウ、ボリュームヒストグラムなどの価格チャートの属性は無効にされ、すべてのチャート境界のインデントが削除されます。

図面を無効にすることは、グラフィカル リソースを使用してカスタムプログラムインターフェイスを作成するための完璧なソリューションです。

グラフィックオブジェクトはCHART_SHOWプロパティ値にかかわらず、常に描画されます。

bool

CHART_IS_OBJECT

チャートオブジェクト( OBJ_CHART )を識別し、グラフィックオブジェクトにはtrue を返します。チャートの場合falseを返します。

bool   r/o

CHART_BRING_TO_TOP

他のチャートの上に重ねてチャートを表示します。

bool   w/o

CHART_CONTEXT_MENU

右クリックでコンテキストメニューへのアクセスを有効/無効にします。

CHART_CONTEXT_MENU=falseの場合、チャートのコンテキストメニューのみが無効になります。チャート上のオブジェクトのコンテキストメニューは利用可能なままです。

bool  (デフォルトはtrue)

CHART_CROSSHAIR_TOOL

中クリックで Crosshairツールへのアクセスを有効/無効にします。

bool  (デフォルトはtrue)

CHART_MOUSE_SCROLL

マウスの左ボタンを使用してチャートを水平方向にスクロールします。CHART_SCALEFIX、CHART_SCALEFIX_11 または CHART_SCALE_PT_PER_BAR プロパティーの値がtrue の場合には、垂直方向のスクロールも可能です。

CHART_MOUSE_SCROLL=falseの場合、マウスホイールを使用したチャートのスクロールは利用できません。

bool

CHART_EVENT_MOUSE_WHEEL

チャート上のすべてのmql5プログラムにマウスホイールイベント (CHARTEVENT_MOUSE_WHEEL) に関するメッセージを送信します。

bool  (デフォルトはtrue)

CHART_EVENT_MOUSE_MOVE

チャート上の全ての MQL5 プログラムに、マウス移動イベントとマウスクリックイベントの通知を送信します(CHARTEVENT_MOUSE_MOVE)。

bool

CHART_EVENT_OBJECT_CREATE

チャート上の全てのMQL5 プログラムに、新規オブジェクト作成イベントの通知を送信します(CHARTEVENT_OBJECT_CREATE)。

bool

CHART_EVENT_OBJECT_DELETE

チャート上の全てのMQL5 プログラムに、削除イベントの通知を送信します(CHARTEVENT_OBJECT_DELETE)。

bool

CHART_MODE

チャートの種類(ローソク足、バー、またはライン)。

enum     ENUM_CHART_MODE

CHART_FOREGROUND

前景の価格チャート。

bool

CHART_SHIFT

右側の境界線からの価格チャートのインデントのモード。

bool

CHART_AUTOSCROLL

チャートの右側の境界線への自動移動のモード。

bool

CHART_KEYBOARD_CONTROL

キーボード(”Home”、 “End”、 “PgUp”、”+”、”-“、”上矢印” など)を使用してチャートを管理できます。 CHART_KEYBOARD_CONTROLをfalseに設定すると、チャートのスクロールとスケーリングが無効になりますが、OnChartEvent()でキー押下イベントをを受け取ることはできます。

bool

CHART_QUICK_NAVIGATION

チャートがスペースとEnterキーの入力を傍受するのを許可してクイックナビゲーションバーをアクティブにします。クイックナビゲーションバーはマウスのダブルクリックまたはスペース/ Enterが押された後、チャートの下部に自動的に表示されます。これによって銘柄、時間枠と最初に表示されるバーの日付を迅速に変更することができます。

bool

CHART_SCALE

Scale

int        0 〜 5

CHART_SCALEFIX

固定スケールモード。

bool

CHART_SCALEFIX_11

1:1 スケールモード。

bool

CHART_SCALE_PT_PER_BAR

指定されたスケール(バーあたりのポイント単位)。

bool

CHART_SHOW_OHLC

左上隅にOHLC値を表示。

bool

CHART_SHOW_BID_LINE

買気配値をチャートに水平線として表示。

bool

CHART_SHOW_ASK_LINE

売気配値をチャートに水平線として表示。

bool

CHART_SHOW_LAST_LINE

直近価格をチャートに水平線として表示。

bool

CHART_SHOW_PERIOD_SEP

隣接する期間の間に垂直方向のセパレータを表示。

bool

CHART_SHOW_GRID

チャートにグリッドを表示。

bool

CHART_SHOW_VOLUMES

チャートにボリュームを表示。

enum     ENUM_CHART_VOLUME_MODE

CHART_SHOW_OBJECT_DESCR

オブジェクトの説明テキストの表示(全てのオブジェクトの説明が表示されるわけではありません)。

bool

CHART_VISIBLE_BARS

チャートに表示出来るバーの数。

int r/o

CHART_WINDOWS_TOTAL

指標サブウィンドウを含んだチャートウィンドウの総数。

int r/o

CHART_WINDOW_IS_VISIBLE

サブウィンドウの可視性。

bool r/o   修飾子 – サブウィンドウ番号。

CHART_WINDOW_HANDLE

チャートウィンドウハンドル( HWND )。

int r/o

CHART_WINDOW_YDISTANCE

指標サブウィンドウの上部フレームとメインチャートウィンドウの上部フレームとの縦 Y 軸に沿った距離(ピクセル単位)。指標サブウィンドウでのグラフィカルオブジェクトの座標がサブウィンドウの左上隅を基準に設定されているのに比べ、マウスイベントでのカーソル座標は、メインチャートウィンドウの座標で渡されます。

この値は、図形オブジェクトを正しく取り扱うために、メインチャートの絶対座標をサブウィンドウフレームの左上隅を基準に設定されているサブウィンドウのローカル座標に変換するために必要とされます。

int r/o     修飾子 – サブウィンドウ番号。

CHART_FIRST_VISIBLE_BAR

チャート上で最初に見えるバーの番号。バーのインデックスは時系列式に付けけられます。

int r/o

CHART_WIDTH_IN_BARS

チャートの幅(バー単位)。

int r/o

CHART_WIDTH_IN_PIXELS

チャートの幅(ピクセル単位)。

int r/o

CHART_HEIGHT_IN_PIXELS

チャートの高さ(ピクセル単位)。

int      修飾子 = サブウィンドウ番号

CHART_COLOR_BACKGROUND

チャートの背景色。

color

CHART_COLOR_FOREGROUND

軸、スケール及びOHLCラインの色。

color

CHART_COLOR_GRID

グリッドの色。

color

CHART_COLOR_VOLUME

ボリュームやポジションオープンレベルの色。

color

CHART_COLOR_CHART_UP

強気ローソク足のアップバー、影とボーダーの色。

color

CHART_COLOR_CHART_DOWN

弱気ローソク足のダウンバー、影とボーダーの色。

color

CHART_COLOR_CHART_LINE

折れ線グラフの色と「同時線」日本製ローソク足の色。

color

CHART_COLOR_CANDLE_BULL

強気ローソク足の実体の色。

color

CHART_COLOR_CANDLE_BEAR

弱気ローソク足の実体の色。

color

CHART_COLOR_BID

売値レベルの色。

color

CHART_COLOR_ASK

買値レベルの色。

color

CHART_COLOR_LAST

直近の約定価格(Last)の線の色。

color

CHART_COLOR_STOP_LEVEL

逆指注文値(決済逆指値及び決済指値)レベルの色。

color

CHART_SHOW_TRADE_LEVELS

チャートでの取引レベル(ポジション、決済逆指値、決済指値及び未決注文のレベル)を表示。

bool

CHART_DRAG_TRADE_LEVELS

チャートで取引レベルをマウスでドラッグする許可。ドラッグモードの初期値は有効(true )です。

bool

CHART_SHOW_DATE_SCALE

チャートでタイムスケールを表示。

bool

CHART_SHOW_PRICE_SCALE

チャートに価格スケールを表示。

bool

CHART_SHOW_ONE_CLICK

チャートに「ワンクリック取引」パネルを表示。

bool

CHART_IS_MAXIMIZED

チャートウィンドウが最大化されている。

bool

CHART_IS_MINIMIZED

チャートウィンドウが最小化されている。

bool

CHART_IS_DOCKED

チャートウィンドウがドックされている。falseに設定されると、チャートは端末領域の外側にドラッグされて移動されることができます。

bool

CHART_FLOAT_LEFT

仮想画面に相対したドッキング解除されたチャートウィンドウの左座標

int

CHART_FLOAT_TOP

仮想画面に相対したドッキング解除されたチャートウィンドウの上部座標

int

CHART_FLOAT_RIGHT

仮想画面に相対したドッキング解除されたチャートウィンドウの右座標

int

CHART_FLOAT_BOTTOM

仮想画面に相対したドッキング解除されたチャートウィンドウの下部座標

int

ChartSetDouble() 及び ChartGetDouble()関数

ENUM_CHART_PROPERTY_DOUBLE

ID

説明

プロパティ型

CHART_SHIFT_SIZE

百分率で表された右境界線からのゼロバーインデントのサイズ。

double (10〜50 パーセント)

CHART_FIXED_POSITION

パーセント値で表された、左の境界からのチャートの固定位置。チャートの固定位置は、水平時間軸上の小さな灰色の三角形でマークされています。これはティック着信時のチャート右への自動スクロールが無効になっている場合にのみ表示されます( CHART_AUTOSCROLL プロパティを参照)。固定位置にあるバーはズームインやズームアウトする時にも移動しません。

double

CHART_FIXED_MAX

固定されたチャートの最大値。

double

CHART_FIXED_MIN

固定されたチャートの最小値。

double

CHART_POINTS_PER_BAR

スケール(バーあたりのポイント単位)。

double

CHART_PRICE_MIN

チャートの最小値。

double r/o   修飾子 – サブウィンドウ番号。

CHART_PRICE_MAX

チャートの最大値。

double r/o   修飾子 – サブウィンドウ番号。

ChartSetString() 及び ChartGetString()関数

ENUM_CHART_PROPERTY_STRING

ID

説明

プロパティ型

CHART_COMMENT

チャート内のコメントテキスト。

string

CHART_EXPERT_NAME

指定されたchart_idを持つチャート上に起動されたエキスパートアドバイザの名前

string

CHART_SCRIPT_NAM

指定されたchart_idを持つチャート上に起動されたスクリプトの名前

string

例:

  int chartMode=ChartGetInteger(0,CHART_MODE);
switch(chartMode)
{
case(CHART_BARS):   Print(“CHART_BARS”);   break;
case(CHART_CANDLES): Print(“CHART_CANDLES”);break;
default:Print(“CHART_LINE”);
}
bool shifted=ChartGetInteger(0,CHART_SHIFT);
if(shifted) Print(“CHART_SHIFT =true”);
else Print(“CHART_SHIFT =false”);
bool autoscroll=ChartGetInteger(0,CHART_AUTOSCROLL);
if(autoscroll) Print(“CHART_AUTOSCROLL =true”);
else Print(“CHART_AUTOSCROLL =false”);
int chartHandle=ChartGetInteger(0,CHART_WINDOW_HANDLE);
Print(“CHART_WINDOW_HANDLE = “,chartHandle);
int windows=ChartGetInteger(0,CHART_WINDOWS_TOTAL);
Print(“CHART_WINDOWS_TOTAL = “,windows);
if(windows>1)
{
for(int i=0;i<windows;i++)
{
int height=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,i);
double priceMin=ChartGetDouble(0,CHART_PRICE_MIN,i);
double priceMax=ChartGetDouble(0,CHART_PRICE_MAX,i);
Print(i+“: CHART_HEIGHT_IN_PIXELS = “,height,” pixels”);
Print(i+“: CHART_PRICE_MIN = “,priceMin);
Print(i+“: CHART_PRICE_MAX = “,priceMax);
}
}

位置定数

ENUM_CHART_POSITION リストの 3 つの識別子は ChartNavigate() 関数の position パラメータとして使用可能です。

ENUM_CHART_POSITION

ID

説明

CHART_BEGIN

チャート先頭(最古の価格)。

CHART_CURRENT_POS

現在の位置。

CHART_END

チャートの最後(最新の価格)。

例:

  long handle=ChartOpen(“EURUSD”,PERIOD_H12);
if(handle!=0)
{
ChartSetInteger(handle,CHART_AUTOSCROLL,false);
ChartSetInteger(handle,CHART_SHIFT,true);
ChartSetInteger(handle,CHART_MODE,CHART_LINE);
ResetLastError();
bool res=ChartNavigate(handle,CHART_END,150);
if(!res) Print(“Navigate failed. Error = “,GetLastError());
ChartRedraw();
}

チャート表示

価格チャートには表示方法が 3 つあります。

  • バー
  • ローソク足
  • ライン

価格チャートを表示する特定の方法は ChartSetInteger(chart_handle,CHART_MODE,chart_mode) 関数で設定されます。ここで chart_mode は ENUM_CHART_MODE 列挙の値のいずれかです。

ENUM_CHART_MODE

ID

説明

CHART_BARS

バーの列として表示。

CHART_CANDLES

日本製ローソク足として表示。

CHART_LINE

終値に引かれた線として表示。

価格チャートにボリュームを表示する方法の指定には ChartSetInteger(chart_handle, CHART_SHOW_VOLUMES, volume_mode) 関数が使用されます。ここで volume_mode は ENUM_CHART_VOLUME_MODE 列挙の値のいずれかです。

 

ENUM_CHART_VOLUME_MODE

ID

説明

CHART_VOLUME_HIDE

ボリュームの非表示。

CHART_VOLUME_TICK

ティックボリューム。

CHART_VOLUME_REAL

取引高。

例:

//— 現在のチャートのハンドルを取得する
long handle=ChartID();
if(handle>0) // 成功したら、更にカスタマイズする
{
//— 自動スクロールを無効にする
ChartSetInteger(handle,CHART_AUTOSCROLL,false);
//— チャートの右側の境界線のインデントを設定する
ChartSetInteger(handle,CHART_SHIFT,true);
//— ローソク足として表示する
ChartSetInteger(handle,CHART_MODE,CHART_CANDLES);
//— 履歴開始から 100 足分スクロールする
ChartNavigate(handle,CHART_CURRENT_POS,100);
//— ティックボリュームの表示モードを設定する
ChartSetInteger(handle,CHART_SHOW_VOLUMES,CHART_VOLUME_TICK);
}

チャート操作の例

このセクションはチャートプロパティを操作する例を含みます。各プロパティに対して、1 つまたは 2 つの完全な関数が表示されます。これらの関数は、プロパティ値の設定/取得を可能にします。これらの関数はカスタム MQL5 アプリケーションでそのまま使用することが出来ます。

下のスクリーンショットは、チャートプロパティの変更とともにグラフィックパネルの外観がどのように変化するかを示しています。「 Next 」ボタンをクリックすると、該当するプロパティの新しい値が設定され、チャートウィンドウで変更内容を表示出来ます。

パネルのソースコードは下にあります。

チャートプロパティ及びその操作に使用されるサンプル関数

  • CHART_IS_OBJECT はオブジェクトが実際のチャートかグラフィックオブジェクトかを定義します。

//+——————————————————————+
//| オブジェクトがチャートかどうかをチェックする。グラフィックオブジェクトの場合,                 |
//| 結果は true で、チャートの場合                                          |
//| 結果は false                                                      |
//+——————————————————————+
bool ChartIsObject(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— チャートプロパティを取得する
if(!ChartGetInteger(chart_ID,CHART_IS_OBJECT,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
//— false を返す
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}

 

  • CHART_BRING_TO_TOP はチャートを他の全てのチャートの上に表示します。

//+———————————————————————-+
//| チャートを他の全てのチャートの上に表示するコマンドを端末に送信する                      |
//+———————————————————————-+
bool ChartBringToTop(const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— チャートを他の全てのチャートの上に表示する
if(!ChartSetInteger(chart_ID,CHART_BRING_TO_TOP,0,true))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_MOUSE_SCROLL はマウスの左ボタンを使用してチャートをスクロールするためのプロパティです。

//+————————————————————————–+
//| マウスの左ボタンを使用してのチャートスクロールが有効かをチェック                              |
//+————————————————————————–+
bool ChartMouseScrollGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_MOUSE_SCROLL,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————–+
//| マウスの左ボタンを使用してのチャートスクロールを有/無効化する                        |
//+——————————————————————–+
bool ChartMouseScrollSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_MOUSE_SCROLL,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_EVENT_MOUSE_MOVE は移動イベントとマウスクリックイベントに関するメッセージを MQL アプリケーションに送信するプロパティです(CHARTEVENT_MOUSE_MOVE)。

//+——————————————————————+
//| 移動イベントとマウスクリックイベントに関するメッセージが                             |
//| MQL アプリケーションに送信されるかをチェックする                                 |
//+——————————————————————+
bool ChartEventMouseMoveGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_EVENT_MOUSE_MOVE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————————+
//| 移動イベントとマウスクリックイベントに関するメッセージの                                         |
//| MQL アプリケーションへの送信を有効または無効にする                                         |
//+——————————————————————————+
bool ChartEventMouseMoveSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_EVENT_MOUSE_MOVE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_EVENT_OBJECT_CREATE はグラフィックオブジェクト作成イベントに関するメッセージを MQL アプリケーションに送信するプロパティです (CHARTEVENT_OBJECT_CREATE)。

//+———————————————————————+
//| グラフィックオブジェクト作成イベントに関するメッセージが                                |
//| チャート上の全ての MQL アプリケーションに送信されるかをチェック                         |
//+———————————————————————+
bool ChartEventObjectCreateGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_EVENT_OBJECT_CREATE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+————————————————————————–+
//| チャート上の全ての MQL アプリケーションへのグラフィックオブジェクト                             |
//| 作成イベントに関するメッセージの送信を有効または無効にする                               |
//+————————————————————————–+
bool ChartEventObjectCreateSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_EVENT_OBJECT_CREATE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_EVENT_OBJECT_DELETE はグラフィックオブジェクト削除イベントに関するメッセージを MQL アプリケーションに送信するプロパティです(CHARTEVENT_OBJECT_DELETE)。

//+———————————————————————+
//| グラフィックオブジェクト削除イベントに関するメッセージが                                |
//| チャート上の全ての MQL アプリケーションに送信されるかをチェック                         |
//+———————————————————————+
bool ChartEventObjectDeleteGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_EVENT_OBJECT_DELETE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+————————————————————————–+
//| チャート上の全ての MQL アプリケーションへのグラフィックオブジェクト                             |
//| 削除イベントに関するメッセージの送信を有効または無効にする                                |
//+————————————————————————–+
bool ChartEventObjectDeleteSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_EVENT_OBJECT_DELETE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_MODEチャートの種類です(ローソク足、バー、及びライン)。

//+——————————————————————+
//| チャートの表示タイプ(ローソク足、バー、及びライン)を取得する                        |
//+——————————————————————+
ENUM_CHART_MODE ChartModeGet(const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long result=WRONG_VALUE;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_MODE,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((ENUM_CHART_MODE)result);
}
//+——————————————————————+
//| チャートの表示タイプ(ローソク足、バー、及びライン)を設定する                       |
//+——————————————————————+
bool ChartModeSet(const long value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_MODE,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_FOREGROUND は価格チャートを前景に表示するプロパティです。

//+——————————————————————+
//| 価格チャートが前景に表示されるかをチェック                                    |
//+——————————————————————+
bool ChartForegroundGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_FOREGROUND,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| 価格チャートの前景での表示を有効または無効にする                             |
//+——————————————————————+
bool ChartForegroundSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_FOREGROUND,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHIFT右側の境界線からの価格チャートのシフトのモードです。

//+——————————————————————-+
//| 右側の境界線からの価格チャートのシフトが有効かをチェック                           |
//+——————————————————————-+
bool ChartShiftGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHIFT,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+———————————————————————————+
//| 右側の境界線からの価格チャートのシフトを有効または無効にする                                    |
//+———————————————————————————+
bool ChartShiftSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHIFT,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_AUTOSCROLLチャートの右側の境界線への自動シフトのモードです。

//+——————————————————————+
//| チャートの右側の境界線への自動シフトが                                     |
//| 新しいティックの到着時に有効かをチェック                                      |
//+——————————————————————+
bool ChartAutoscrollGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_AUTOSCROLL,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| 新しいティックの到着時のチャートの右側の境界線への自動シフトを                    |
//| 有効または無効にする                                                  |
//+——————————————————————+
bool ChartAutoscrollSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_AUTOSCROLL,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SCALEチャートスケールプロパティです。

//+——————————————————————+
//| 0から5のチャートスケールを取得する                                         |
//+——————————————————————+
int ChartScaleGet(const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long result=-1;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SCALE,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((int)result);
}
//+——————————————————————+
//| 0から5のチャートスケールを設定する                                         |
//+——————————————————————+
bool ChartScaleSet(const long value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SCALE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SCALEFIXチャートの固定スケールのモードです。

//+——————————————————————+
//| チャートの固定スケールのモードが有効かをチェック                                |
//+——————————————————————+
bool ChartScaleFixGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SCALEFIX,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| 固定スケールモードを有効または無効にする                                    |
//+——————————————————————+
bool ChartScaleFixSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SCALEFIX,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SCALEFIX_11 1:1 チャートスケールモードです。

//+——————————————————————+
//| 1:1 スケールが有効かをチェック                                           |
//+——————————————————————+
bool ChartScaleFix11Get(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SCALEFIX_11,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| 1:1 スケールモードを有効または無効にする                                    |
//+——————————————————————+
bool ChartScaleFix11Set(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SCALEFIX_11,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SCALE_PT_PER_BARチャートスケールをバーあたりのポイントで指定するモードです。

//+——————————————————————+
//| 「バーあたりのポイント」スケールモードが有効かをチェック                             |
//+——————————————————————+
bool ChartScalePerBarGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SCALE_PT_PER_BAR,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| 「バーあたりのポイント」チャートスケールモードを有効または無効にする                   |
//+——————————————————————+
bool ChartScalePerBarSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SCALE_PT_PER_BAR,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_OHLC OHLC 値を左上隅に表示するプロパティです。

//+———————————————————————————-+
//| OHLC 値の左上隅の表示が有効かをチェック                                                   |
//+———————————————————————————-+
bool ChartShowOHLCGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_OHLC,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————————+
//| チャートの左上隅での OHLC 値の表示を有効または無効にする                                  |
//+——————————————————————————+
bool ChartShowOHLCSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_OHLC,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_BID_LINE売値をチャートの水平線として表示するプロパティです。

//+——————————————————————+
//| チャート上での売り線の表示が有効かをチェック                                  |
//+——————————————————————+
bool ChartShowBidLineGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_BID_LINE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| チャート上での売り線の表示を有効または無効にする                              |
//+——————————————————————+
bool ChartShowBidLineSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_BID_LINE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_ASK_LINE買値をチャートの水平線として表示するプロパティです。

//+——————————————————————+
//| チャート上での買い線の表示が有効かをチェック                                  |
//+——————————————————————+
bool ChartShowAskLineGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_ASK_LINE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| チャート上での買い線の表示を有効または無効にする                              |
//+——————————————————————+
bool ChartShowAskLineSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_ASK_LINE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_LAST_LINE最終値をチャートの水平線として表示するプロパティです 。

//+—————————————————————————–+
//| 最後の約定価格のラインの表示が有効かをチェック                                          |
//+—————————————————————————–+
bool ChartShowLastLineGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_LAST_LINE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+————————————————————————-+
//| 最後の約定価格のライン表示を有効または無効にする                                   |
//+————————————————————————-+
bool ChartShowLastLineSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_LAST_LINE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_PERIOD_SEP 隣接する期間の間に垂直方向の区切り文字を表示するプロパティです。

//+———————————————————————————+
//| 隣接する期間の間の垂直方向の区切り文字の表示が有効かをチェック                                 |
//+———————————————————————————+
bool ChartShowPeriodSeparatorGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_PERIOD_SEP,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+—————————————————————————–+
//| 隣接する期間の間の垂直方向の区切り文字の表示を有効または無効にする                         |
//+—————————————————————————–+
bool ChartShowPeriodSepapatorSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_PERIOD_SEP,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_GRIDチャートグリッドを表示するプロパティです。

//+——————————————————————+
//| チャートグリッドが表示されているかをチェック                                     |
//+——————————————————————+
bool ChartShowGridGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_GRID,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| チャート上でのグリッド表示を有効または無効にする                               |
//+——————————————————————+
bool ChartShowGridSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_GRID,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_VOLUMESチャートにボリュームを表示するプロパティです。

//+——————————————————————+
//| チャートにボリュームが表示されているかをチェック。                                 |
//| フラグはボリューム表示モードを示します。                                      |
//+——————————————————————+
ENUM_CHART_VOLUME_MODE ChartShowVolumesGet(const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long result=WRONG_VALUE;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_VOLUMES,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((ENUM_CHART_VOLUME_MODE)result);
}
//+——————————————————————+
//| チャート上でのボリューム表示モードを設定する                                  |
//+——————————————————————+
bool ChartShowVolumesSet(const long value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_VOLUMES,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_OBJECT_DESCRグラフィカルオブジェクトのポップアップ説明のプロパティです。

//+——————————————————————-+
//| グラフィカルオブジェクトのポップアップ説明が                                      |
//| マウスをホーバーした時に表示されるかをチェック                                   |
//+——————————————————————-+
bool ChartShowObjectDescriptionGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_OBJECT_DESCR,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+————————————————————————-+
//| マウスホーバー時のグラフィカルオブジェクトのポップアップ説明を                               |
//| 有効または無効にする                                                         |
//+————————————————————————-+
bool ChartShowObjectDescriptionSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_OBJECT_DESCR,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_VISIBLE_BARS はチャート上表示のために利用可能なバーの数を定義します。

//+———————————————————————-+
//| チャートウィンドウに表示されている(可視)バーの数を取得する                            |
//+———————————————————————-+
int ChartVisibleBars(const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long result=-1;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_VISIBLE_BARS,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((int)result);
}

 

  • CHART_WINDOWS_TOTAL は指標サブウィンドウを含んだチャートウィンドウの総数を定義します。

//+———————————————————————–+
//| 指標サブウィンドウを含んだチャートウィンドウの総数を取得する                             |
//+———————————————————————–+
int ChartWindowsTotal(const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long result=-1;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_WINDOWS_TOTAL,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((int)result);
}

 

  • CHART_WINDOW_IS_VISIBLE はサブウィンドウの可視性を定義します。

//+——————————————————————+
//| 現在のチャートウィンドウまたはサブウィンドウの可視性をチェック                        |
//+——————————————————————+
bool ChartWindowsIsVisible(bool &result,const long chart_ID=0,const int sub_window=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_WINDOW_IS_VISIBLE,sub_window,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}

 

  • CHART_WINDOW_HANDLE はチャートハンドルを返します。

//+——————————————————————+
//| チャートハンドルを取得する                                               |
//+——————————————————————+
int ChartWindowsHandle(const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long result=-1;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_WINDOW_HANDLE,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((int)result);
}

 

  • CHART_WINDOW_YDISTANCE は指標サブウィンドウの上部フレームとメインチャートウィンドウの上部フレームとの縦 Y 軸に沿ったピクセル単位での距離を定義します。

//+——————————————————————+
//| ピクセル単位でのサブウィンドウの上部フレームと                                 |
//| メインチャートウィンドウの上部フレームとの距離を取得する                          |
//+——————————————————————+
int ChartWindowsYDistance(const long chart_ID=0,const int sub_window=0)
{
//— プロパティ値を取得する変数を準備する
long result=-1;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_WINDOW_YDISTANCE,sub_window,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((int)result);
}

 

  • CHART_FIRST_VISIBLE_BAR はチャート上に最初に表示されるバーの番号を返します(バーの索引付けは時系列に従います)。

//+——————————————————————————+
//| チャート上に最初に表示されるバーの番号を取得する                                          |
//| バーの索引付けは時系列に従い、最新のバーは、最小のインデックスを持っている                       |
//+——————————————————————————+
int ChartFirstVisibleBar(const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long result=-1;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_FIRST_VISIBLE_BAR,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((int)result);
}

 

  • CHART_WIDTH_IN_BARS はチャート幅をバーの数で返します。

//+——————————————————————+
//| チャート幅をバーの数で取得する                                            |
//+——————————————————————+
int ChartWidthInBars(const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long result=-1;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_WIDTH_IN_BARS,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((int)result);
}

 

  • CHART_WIDTH_IN_PIXELS はチャート幅をピクセル数で返します。

//+——————————————————————+
//| チャート幅をピクセル数で取得する                                          |
//+——————————————————————+
int ChartWidthInPixels(const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long result=-1;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_WIDTH_IN_PIXELS,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((int)result);
}

 

  • CHART_HEIGHT_IN_PIXELSピクセル単位でのチャートの高さを示すプロパティです。

//+——————————————————————+
//| チャートの高さをピクセル数で取得する                                        |
//+——————————————————————+
int ChartHeightInPixelsGet(const long chart_ID=0,const int sub_window=0)
{
//— プロパティ値を取得する変数を準備する
long result=-1;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_HEIGHT_IN_PIXELS,sub_window,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((int)result);
}
//+——————————————————————+
//| チャートの高さをピクセル数で設定する                                        |
//+——————————————————————+
bool ChartHeightInPixelsSet(const int value,const long chart_ID=0,const int sub_window=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_HEIGHT_IN_PIXELS,sub_window,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_BACKGROUND はチャートの背景色です。

//+——————————————————————+
//| チャートの背景色を取得する                                              |
//+——————————————————————+
color ChartBackColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— チャートの背景色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_BACKGROUND,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| チャートの背景色を設定する                                              |
//+——————————————————————+
bool ChartBackColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— チャートの背景色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_BACKGROUND,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_FOREGROUND は軸、スケールとOHLCラインの色です。

//+——————————————————————+
//| 軸、スケールとOHLCラインの色を取得する                                     |
//+——————————————————————+
color ChartForeColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— 軸、スケールとOHLCラインの色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_FOREGROUND,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| 軸、スケールとOHLCラインの色を設定する                                      |
//+——————————————————————+
bool ChartForeColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— 軸、スケールとOHLCラインの色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_FOREGROUND,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_GRID はチャートグリッドの色です。

//+——————————————————————+
//| チャートグリッドの色を取得する                                             |
//+——————————————————————+
color ChartGridColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— チャートグリッドの色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_GRID,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| チャートグリッドの色を設定する                                             |
//+——————————————————————+
bool ChartGridColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— チャートグリッドの色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_GRID,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_VOLUME はボリュームとポジションの初期レベルの色です。

//+——————————————————————+
//| ボリュームとマーケットエントリーレベルの色を取得する                              |
//+——————————————————————+
color ChartVolumeColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— ボリュームとマーケットエントリーレベルの色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_VOLUME,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| ボリュームとマーケットエントリーレベルの色を設定する                               |
//+——————————————————————+
bool ChartVolumeColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— ボリュームとマーケットエントリーレベルの色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_VOLUME,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_CHART_UP はアップバーとその影、及び強気ローソク足の実体の縁の色です。

//+—————————————————————————–+
//| バーとその影、及び強気ローソク足の縁の色を取得する                                       |
//+—————————————————————————–+
color ChartUpColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— バーとその影、及び強気ローソク足の縁の色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_CHART_UP,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| バーとその影、及び強気ローソク足の縁の色を設定する                             |
//+——————————————————————+
bool ChartUpColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— バーとその影、及び強気ローソク足の縁の色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_CHART_UP,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_CHART_DOWNダウンバーとその影、及び弱気ローソク足の縁の色です。

//+——————————————————————————-+
//| ダウンバーとその影、及び弱気ローソク足の縁の色を取得する                                      |
//+——————————————————————————-+
color ChartDownColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— ダウンバーとその影、及び弱気ローソク足の縁の色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_CHART_DOWN,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————————-+
//| ダウンバーとその影、及び弱気ローソク足の縁の色を設定する                                      |
//+——————————————————————————-+
bool ChartDownColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— ダウンバーとその影、及び弱気ローソク足の縁の色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_CHART_DOWN,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_CHART_LINEチャートの線と同時線の色です。

//+——————————————————————+
//| チャートの線と同時線の色を取得する                                        |
//+——————————————————————+
color ChartLineColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— チャートの線と同時線の色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_CHART_LINE,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| チャートの線と同時線の色を設定する                                        |
//+——————————————————————+
bool ChartLineColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— チャートの線と同時線の色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_CHART_LINE,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_CANDLE_BULL強気ローソク足の実体の色です。

//+——————————————————————+
//| 強気ローソク足の実体の色を取得する                                       |
//+——————————————————————+
color ChartBullColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— 強気ローソク足の実体の色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_CANDLE_BULL,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| 強気ローソク足の実体の色を設定する                                       |
//+——————————————————————+
bool ChartBullColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— 強気ローソク足の実体の色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_CANDLE_BULL,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_CANDLE_BEAR弱気ローソク足の実体の色です。

//+——————————————————————+
//| 弱気ローソク足の実体の色を取得する                                       |
//+——————————————————————+
color ChartBearColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— 弱気ローソク足の実体の色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_CANDLE_BEAR,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| 弱気ローソク足の実体の色を設定する                                       |
//+——————————————————————+
bool ChartBearColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— 弱気ローソク足の実体の色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_CANDLE_BEAR,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_BID売値線の色です。

//+——————————————————————+
//| 売値線の色を取得する。</t2>                                           |
//+——————————————————————+
color ChartBidColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— 売値線の色を受け取る。</t2>
if(!ChartGetInteger(chart_ID,CHART_COLOR_BID,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| 売り線の色を設定する                                                  |
//+——————————————————————+
bool ChartBidColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— 売り線の色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_BID,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_ASK買値線の色です。

//+——————————————————————+
//| 買値線の色を取得する                                                 |
//+——————————————————————+
color ChartAskColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— 買値線の色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_ASK,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| 買値線の色を設定する                                                 |
//+——————————————————————+
bool ChartAskColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— 買値線の色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_ASK,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_LAST最後の約定価格の線の色です。

//+——————————————————————+
//| 最後の約定価格の線の色を取得する                                        |
//+——————————————————————+
color ChartLastColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— 最後の約定価格の線の色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_LAST,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| 最後の約定価格の線の色を設定する                                        |
//+——————————————————————+
bool ChartLastColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— 最後の約定価格の線の色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_LAST,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_COLOR_STOP_LEVEL 逆指値レベル(決済逆指値及び決済指値)の色です。

//+——————————————————————+
//| 逆指値レベル(決済逆指値及び決済指値)の色を取得する                         |
//+——————————————————————+
color ChartStopLevelColorGet(const long chart_ID=0)
{
//— 色を受け取る変数を準備する
long result=clrNONE;
//— エラー値をリセットする
ResetLastError();
//— 逆指値レベル(決済逆指値及び決済指値)の色を受け取る
if(!ChartGetInteger(chart_ID,CHART_COLOR_STOP_LEVEL,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return((color)result);
}
//+——————————————————————+
//| 逆指値レベル(決済逆指値及び決済指値)の色を設定する                         |
//+——————————————————————+
bool ChartStopLevelColorSet(const color clr,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— 逆指値レベル(決済逆指値及び決済指値)の色を設定する
if(!ChartSetInteger(chart_ID,CHART_COLOR_STOP_LEVEL,clr))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_TRADE_LEVELSチャート上に取引レベルを表示するプロパティです (ポジション、決済逆指値、決済指値及び未決注文のレベル)。

//+——————————————————————+
//| 取引レベルがチャートに表示されているかをチェック                                |
//+——————————————————————+
bool ChartShowTradeLevelsGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_TRADE_LEVELS,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| 取引レベルの表示を有効または無効にする                                     |
//+——————————————————————+
bool ChartShowTradeLevelsSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_TRADE_LEVELS,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_DRAG_TRADE_LEVELS はチャートの取引レベルをマウスでドラッグする能力のプロパティです。

//+———————————————————————-+
//| チャートの取引レベルをマウスでドラッグする事が出来るかをチェック                          |
//+———————————————————————-+
bool ChartDragTradeLevelsGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_DRAG_TRADE_LEVELS,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| チャートの取引レベルのマウスドラッグを有効または無効にする                         |
//+——————————————————————+
bool ChartDragTradeLevelsSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_DRAG_TRADE_LEVELS,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_DATE_SCALEチャートにタイムスケールを表示するプロパティです。

//+——————————————————————+
//| チャートにタイムスケールが表示されるかをチェック                                 |
//+——————————————————————+
bool ChartShowDateScaleGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_DATE_SCALE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| チャートでのタイムスケール表示を有効または無効にする                            |
//+——————————————————————+
bool ChartShowDateScaleSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_DATE_SCALE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_PRICE_SCALEチャートに価格スケールを表示するプロパティです。

//+——————————————————————+
//| チャートに価格スケール表示する                                            |
//+——————————————————————+
bool ChartShowPriceScaleGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_PRICE_SCALE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| チャートでの価格スケール表示を有効または無効にする                             |
//+——————————————————————+
bool ChartShowPriceScaleSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_PRICE_SCALE,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHOW_ONE_CLICKチャートに「1クリック取引」パネルを表示するプロパティです。

//+——————————————————————+
//| チャートに「1クリック取引」パネルが表示されているかをチェック                         |
//+——————————————————————+
bool ChartShowOneClickPanelGet(bool &result,const long chart_ID=0)
{
//— プロパティ値を取得する変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetInteger(chart_ID,CHART_SHOW_ONE_CLICK,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティの値をメモリ内に格納する
result=value;
//— 実行成功
return(true);
}
//+——————————————————————+
//| チャートでの「1クリック取引」パネルの表示を有効または無効にする                     |
//|                                                                  |
//+——————————————————————+
bool ChartShowOneClickPanelSet(const bool value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetInteger(chart_ID,CHART_SHOW_ONE_CLICK,0,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_SHIFT_SIZE百分率で表された右境界線からのゼロバーのシフトサイズです。

//+—————————————————————–+
//| 右境界線からのゼロバーのシフトサイズを取得する                               |
//| (10% から 50%)                                                   |
//+—————————————————————–+
double ChartShiftSizeGet(const long chart_ID=0)
{
//— 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_SHIFT_SIZE,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return(result);
}
//+—————————————————————————–+
//| 右境界線からのゼロバーのシフトサイズを取得する                                           |
//| (10% から50%)                                                                 |
//| シフトモードを有効にするには、CHART_SHIFT プロパティ値を true に設定する必要がある              |
//+—————————————————————————–+
bool ChartShiftSizeSet(const double value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetDouble(chart_ID,CHART_SHIFT_SIZE,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_FIXED_POSITION 百分率で表された、左の境界からのチャートの固定位置です。

//+—————————————————————————————-+
//| 百分率で表された、左の境界からのチャートの固定位置を取得する                                          |
//+—————————————————————————————-+
double ChartFixedPositionGet(const long chart_ID=0)
{
//— 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_FIXED_POSITION,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return(result);
}
//+—————————————————————————————–+
//| 百分率で表された、左の境界からのチャートの固定位置を取得する                                           |
//| チャートの固定位置をみるには CHART_AUTOSCROLL プロパティ値                                          |
//| を false にするのが必要                                                                      |
//+—————————————————————————————–+
bool ChartFixedPositionSet(const double value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetDouble(chart_ID,CHART_FIXED_POSITION,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_FIXED_MAXチャートの固定された最大限です。

//+——————————————————————+
//| チャートの固定された最大限を取得する                                       |
//+——————————————————————+
double ChartFixedMaxGet(const long chart_ID=0)
{
//— 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_FIXED_MAX,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return(result);
}
//+——————————————————————+
//| チャートの固定された最大限を設定する                                       |
//| プロパティ値をかえるには、CHART_SCALEFIX プロパティ                           |
//| 値を予め true にすることが必要                                          |
//+——————————————————————+
bool ChartFixedMaxSet(const double value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetDouble(chart_ID,CHART_FIXED_MAX,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_FIXED_MIN チャートの固定された最小限です。

//+——————————————————————+
//| チャートの固定された最大限を取得                                         |
//+——————————————————————+
double ChartFixedMinGet(const long chart_ID=0)
{
//— 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_FIXED_MIN,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return(result);
}
//+——————————————————————+
//| チャートの固定された最大限を設定する                                       |
//| プロパティ値をかえるには、CHART_SCALEFIX プロパティ                           |
//| 値を予め true にすることが必要                                          |
//+——————————————————————+
bool ChartFixedMinSet(const double value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetDouble(chart_ID,CHART_FIXED_MIN,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_POINTS_PER_BARポイント単位のバーあたりのスケールです。

//+——————————————————————+
//| ポイント単位のバーあたりのスケールを取得する                                  |
//+——————————————————————+
double ChartPointsPerBarGet(const long chart_ID=0)
{
//— 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_POINTS_PER_BAR,0,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return(result);
}
//+———————————————————————-+
//| チャートスケールを設定する(バーあたりのポイント単位)                                 |
//| このプロパティの値の変化を見るには、                                            |
//| CHART_SCALE_PT_PER_BAR プロパティを予め true にすることが必要                  |
//+———————————————————————-+
bool ChartPointsPerBarSet(const double value,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetDouble(chart_ID,CHART_POINTS_PER_BAR,value))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_PRICE_MIN はチャートの最小値を返します。

//+———————————————————————-+
//| メインウィンドウかサブウィンドウでチャートの最小値を取得する                             |
//+———————————————————————-+
double ChartPriceMin(const long chart_ID=0,const int sub_window=0)
{
//— 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_PRICE_MIN,sub_window,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return(result);
}

 

  • CHART_PRICE_MAX はチャートの最大値を返します。

//+———————————————————————-+
//| メインウィンドウかサブウィンドウでチャートの最大値を取得する                             |
//+———————————————————————-+
double ChartPriceMax(const long chart_ID=0,const int sub_window=0)
{
//— 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_PRICE_MAX,sub_window,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
}
//— チャートプロパティの値を返す
return(result);
}

 

  • CHART_COMMENTチャート上のコメントです。

//+——————————————————————+
//| チャートの左上隅のコメントを取得する                                        |
//+——————————————————————+
bool ChartCommentGet(string &result,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受け取る
if(!ChartGetString(chart_ID,CHART_COMMENT,result))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}
//+——————————————————————+
//| チャートの左上隅のコメントを取得する                                        |
//+——————————————————————+
bool ChartCommentSet(const string str,const long chart_ID=0)
{
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を設定する
if(!ChartSetString(chart_ID,CHART_COMMENT,str))
{
//— エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+“, Error Code = “,GetLastError());
return(false);
}
//— 実行成功
return(true);
}

 

  • CHART_IS_MAXIMIZEDチャートウィンドウが最大化されている

//+——————————————————————+
//| 現在のチャートウィンドウが最大化されているかを定義する                           |
//+——————————————————————+
bool ChartWindowsIsMaximized(bool &result,const long chart_ID=0)
{
//— プロパティ値の受信に向けて変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受信する
if(!ChartGetInteger(chart_ID,CHART_IS_MAXIMIZED))
{
//— エキスパートログにエラーメッセージを表示する
Print(__FUNCTION__+”, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティ値を変数に格納する
result=value;
//— 正常な実行
return(true);
}

 

  • CHART_IS_MINIMIZED チャートウィンドウが最小化されている.

//+——————————————————————+
//| 現在のチャートウィンドウが最小化されているかを定義する                           |
//+——————————————————————+
bool ChartWindowsIsMinimized(bool &result,const long chart_ID=0)
{
//— プロパティ値の受信に向けて変数を準備する
long value;
//— エラー値をリセットする
ResetLastError();
//— プロパティ値を受信する
if(!ChartGetInteger(chart_ID,CHART_IS_MINIMIZED))
{
//— エキスパートにエラーメッセージを表示する
Print(__FUNCTION__+”, Error Code = “,GetLastError());
return(false);
}
//— チャートプロパティ値を変数に格納する
result=value;
//— 正常な実行
return(true);
}

 

チャートプロパティパネル

//— 制御要素のライブラリを接続する
#include <ChartObjects\ChartObjectsTxtControls.mqh>
//— 定義済み定数
#define X_PROPERTY_NAME_1    10 // 最初の列のプロパティ名の x 座標
#define X_PROPERTY_VALUE_1   225 // 最初の列のプロパティ値の x 座標
#define X_PROPERTY_NAME_2    345 // 2 番目の列のプロパティ名の x 座標
#define X_PROPERTY_VALUE_2   550 // 2 番目の列のプロパティ値の x 座標
#define X_BUTTON_1           285 // 最初の列のボタンの x 座標
#define X_BUTTON_2           700 // 2 番目の列のボタンの x 座標
#define Y_PROPERTY_1         30 // 最初及び 2 番目の列の先頭の y 座標
#define Y_PROPERTY_2         286 // 3 番目の列の先頭の y 座標
#define Y_DISTANCE           16 // ライン間のY 軸方向の距離
#define LAST_PROPERTY_NUMBER 111 // 最後のグラフィックプロパティの数
//— 入力パラメータ
input color InpFirstColor=clrDodgerBlue; // 奇数の線の色
input color InpSecondColor=clrGoldenrod; // 偶数の線の色
//— 変数と配列
CChartObjectLabel  ExtLabelsName[]; // プロパティ名を表示するためのラベル
CChartObjectLabel  ExtLabelsValue[]; // プロパティ値を表示するためのラベル
CChartObjectButton ExtButtons[];     // ボタン
int                ExtNumbers[];     // プロパティインデックス
string             ExtNames[];       // プロパティ名
uchar              ExtDataTypes[];   // プロパティのデータ型( integer, double, string)
uint               ExtGroupTypes[]; // グループのいずれかに属する特性のデータを格納する配列
uchar              ExtDrawTypes[];   // プロパティ表示の種類のデータを格納する配列
double             ExtMaxValue[];   // パネルの操作時に可能な最大のプロパティ値
double             ExtMinValue[];   // パネルの操作時に可能な最小のプロパティ値
double             ExtStep[];       // プロパティ変更ステップ
int                ExtCount;         // プロパティ総数
color              ExtColors[2];     // 線表示の色の配列
string             ExtComments[2];   // コメント配列(CHART_COMMENT プロパティ)
//+——————————————————————+
//| カスタム指標を初期化する関数                                            |
//+——————————————————————+
int OnInit()
{
//— チャートにコメントを表示する
Comment(“SomeComment”);
//— 後で切り替えが出来るように色を配列に収納する
ExtColors[0]=InpFirstColor;
ExtColors[1]=InpSecondColor;
//— 後で切り替えが出来るようにコメントを配列に収納する
ExtComments[0]=“FirstComment”;
ExtComments[1]=“SecondComment”;
//— チャートのプロパティを管理するためのコントロールパネルを準備して表示する
if(!PrepareControls())
return(INIT_FAILED);
//— 実行成功
return(INIT_SUCCEEDED);
}
//+——————————————————————+
//| エキスパートの初期化解除関数                                            |
//+——————————————————————+
void OnDeinit(const int reason)
{
//— チャートのコメントを削除する
Comment(“”);
}
//+——————————————————————+
//| チャートイベントハンドラ                                                  |
//+——————————————————————+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//— チャートクリックイベントをチェック
if(id==CHARTEVENT_OBJECT_CLICK)
{
//— オブジェクト名をセパレータで分ける
string obj_name[];
StringSplit(sparam,‘_’,obj_name);
//— オブジェクトがボタンかどうかチェック
if(obj_name[0]==“Button”)
{
//— ボタンインデックスを受け取る
int index=(int)StringToInteger(obj_name[1]);
//— ボタンを放す
ExtButtons[index].State(false);
//— プロパティの新しい値を型に応じて設定する
if(ExtDataTypes[index]==‘I’)
ChangeIntegerProperty(index);
if(ExtDataTypes[index]==‘D’)
ChangeDoubleProperty(index);
if(ExtDataTypes[index]==‘S’)
ChangeStringProperty(index);
}
}
//— プロパティ値を描き直す
RedrawProperties();
ChartRedraw();
}
//+——————————————————————+
//| チャートの整数プロパティを変更する                                          |
//+——————————————————————+
void ChangeIntegerProperty(const int index)
{
//— 現プロパティ値を受け取る
long value=ChartGetInteger(0,(ENUM_CHART_PROPERTY_INTEGER)ExtNumbers[index]);
//— 次のプロパティ値を定義する
switch(ExtDrawTypes[index])
{
case ‘C’:
value=GetNextColor((color)value);
break;
default:
value=(long)GetNextValue((double)value,index);
break;
}
//— 新しいプロパティ値を設定する
ChartSetInteger(0,(ENUM_CHART_PROPERTY_INTEGER)ExtNumbers[index],0,value);
}
//+——————————————————————+
//| チャートの double 型プロパティを変更する                                   |
//+——————————————————————+
void ChangeDoubleProperty(const int index)
{
//— 現プロパティ値を受け取る
double value=ChartGetDouble(0,(ENUM_CHART_PROPERTY_DOUBLE)ExtNumbers[index]);
//— 次のプロパティ値を定義する
value=GetNextValue(value,index);
//— 新しいプロパティ値を設定する
ChartSetDouble(0,(ENUM_CHART_PROPERTY_DOUBLE)ExtNumbers[index],value);
}
//+——————————————————————+
//| チャートの string 型プロパティを変更する                                   |
//+——————————————————————+
void ChangeStringProperty(const int index)
{
//— ExtComments配列内部を切り替えるための静的変数
static uint comment_index=1;
//— 別のコメントを受信するためのインデックスを変更する
comment_index=1-comment_index;
//— 新しいプロパティ値を設定する
ChartSetString(0,(ENUM_CHART_PROPERTY_STRING)ExtNumbers[index],ExtComments[comment_index]);
}
//+——————————————————————+
//| 次のプロパティ値を取得する                                              |
//+——————————————————————+
double GetNextValue(const double value,const int index)
{
if(value+ExtStep[index]<=ExtMaxValue[index])
return(value+ExtStep[index]);
else
return(ExtMinValue[index]);
}
//+——————————————————————+
//| color 型プロパティの次の色を取得する                                     |
//+——————————————————————+
color GetNextColor(const color clr)
{
//— 次の color 値を返す
switch(clr)
{
case clrWhite: return(clrRed);
case clrRed:   return(clrGreen);
case clrGreen: return(clrBlue);
case clrBlue: return(clrBlack);
default:       return(clrWhite);
}
}
//+——————————————————————+
//| プロパティ値を描き直す                                                  |
//+——————————————————————+
void RedrawProperties(void)
{
//— プロパティ値のテキスト
string text;
long   value;
//— プロパティ数のループ
for(int i=0;i<ExtCount;i++)
{
text=“”;
switch(ExtDataTypes[i])
{
case ‘I’:
//— 現プロパティ値を受け取る
if(!ChartGetInteger(0,(ENUM_CHART_PROPERTY_INTEGER)ExtNumbers[i],0,value))
break;
//— 整数プロパティのテキスト
switch(ExtDrawTypes[i])
{
//— color プロパティ
case ‘C’:
text=(string)((color)value);
break;
//— boolean プロパティ
case ‘B’:
text=(string)((bool)value);
break;
//— ENUM_CHART_MODE 列挙プロパティ
case ‘M’:
text=EnumToString((ENUM_CHART_MODE)value);
break;
//— ENUM_CHART_VOLUME_MODE 列挙プロパティ
case ‘V’:
text=EnumToString((ENUM_CHART_VOLUME_MODE)value);
break;
//— int 型の数
default:
text=IntegerToString(value);
break;
}
break;
case ‘D’:
//— double 型プロパティのテキスト
text=DoubleToString(ChartGetDouble(0,(ENUM_CHART_PROPERTY_DOUBLE)ExtNumbers[i]),4);
break;
case ‘S’:
//— string 型プロパティのテキスト
text=ChartGetString(0,(ENUM_CHART_PROPERTY_STRING)ExtNumbers[i]);
break;
}
//— プロパティ値を表示する
ExtLabelsValue[i].Description(text);
}
}
//+——————————————————————+
//| チャートプロパティを管理するためのパネルを作成する                               |
//+——————————————————————+
bool PrepareControls(void)
{
//— 予備を含めて配列にメモリを割り当てる
MemoryAllocation(LAST_PROPERTY_NUMBER+1);
//— 変数
int i=0;     // ループ変数
int col_1=0; // 最初の列のプロパティの数
int col_2=0; // 2 番目の列のプロパティの数
int col_3=0; // 3 番目の列のプロパティの数
//— 現在のプロパティ数は0
ExtCount=0;
//— ループでプロパティを探す
while(i<=LAST_PROPERTY_NUMBER)
{
//— 現プロパティの数を保存する
ExtNumbers[ExtCount]=i;
//— ループ変数の値を増やす
i++;
//— そのような番号を持つプロパティがあるかどうかをチェック
if(CheckNumber(ExtNumbers[ExtCount],ExtNames[ExtCount],ExtDataTypes[ExtCount],ExtGroupTypes[ExtCount],ExtDrawTypes[ExtCount]))
{
//— プロパティのための制御要素を作成する
switch(ExtGroupTypes[ExtCount])
{
case 1:
//— プロパティのラベルとボタンを作成する
if(!ShowProperty(ExtCount,0,X_PROPERTY_NAME_1,X_PROPERTY_VALUE_1,X_BUTTON_1,Y_PROPERTY_1+col_1*Y_DISTANCE,true))
return(false);
//— 最初の列内の要素の数が増加した
col_1++;
break;
case 2:
//— プロパティのラベルとボタンを作成する
if(!ShowProperty(ExtCount,1,X_PROPERTY_NAME_2,X_PROPERTY_VALUE_2,X_BUTTON_2,Y_PROPERTY_1+col_2*Y_DISTANCE,true))
return(false);
//— 2 番目の列内の要素の数が増加した
col_2++;
break;
case 3:
//— プロパティのみにラベルを作成する
if(!ShowProperty(ExtCount,2,X_PROPERTY_NAME_2,X_PROPERTY_VALUE_2,0,Y_PROPERTY_2+col_3*Y_DISTANCE,false))
return(false);
//— 3 番目の列内の要素の数が増加した
col_3++;
break;
}
//— プロパティの最大値と最小値とステップを定義する
GetMaxMinStep(ExtNumbers[ExtCount],ExtMaxValue[ExtCount],ExtMinValue[ExtCount],ExtStep[ExtCount]);
//— プロパティ数を増加する
ExtCount++;
}
}
//— 配列に使用されていないメモリを解放する   
MemoryAllocation(ExtCount);
//— プロパティ値を描き直す
RedrawProperties();
ChartRedraw();
//— 実行成功
return(true);
}
//+——————————————————————+
//| 配列にメモリを割り当てる                                                 |
//+——————————————————————+
void MemoryAllocation(const int size)
{
ArrayResize(ExtLabelsName,size);
ArrayResize(ExtLabelsValue,size);
ArrayResize(ExtButtons,size);
ArrayResize(ExtNumbers,size);
ArrayResize(ExtNames,size);
ArrayResize(ExtDataTypes,size);
ArrayResize(ExtGroupTypes,size);
ArrayResize(ExtDrawTypes,size);
ArrayResize(ExtMaxValue,size);
ArrayResize(ExtMinValue,size);
ArrayResize(ExtStep,size);
}
//+——————————————————————+
//| プロパティインデックスが                                                  |
//| ENUM_CHART_PROPERTIES 列挙値の 1 つかどうかチェックする                    |
//+——————————————————————+
bool CheckNumber(const int ind,string &name,uchar &data_type,uint &group_type,uchar &draw_type)
{
//— プロパティが整数型かどうかチェックする
ResetLastError();
name=EnumToString((ENUM_CHART_PROPERTY_INTEGER)ind);
if(_LastError==0)
{
data_type=‘I’;                     // ENUM_CHART_PROPERTY_INTEGER 列挙のプロパティ
GetTypes(ind,group_type,draw_type); // プロパティの表示パラメータを定義する
return(true);
}
//— プロパティが double 型かどうかチェックする
ResetLastError();
name=EnumToString((ENUM_CHART_PROPERTY_DOUBLE)ind);
if(_LastError==0)
{
data_type=‘D’;                     // ENUM_CHART_PROPERTY_DOUBLE 列挙のプロパティ
GetTypes(ind,group_type,draw_type); // プロパティの表示パラメータを定義する
return(true);
}
//— プロパティが string 型かどうかチェックする
ResetLastError();
name=EnumToString((ENUM_CHART_PROPERTY_STRING)ind);
if(_LastError==0)
{
data_type=‘S’;                     // ENUM_CHART_PROPERTY_STRING 列挙のプロパティ
GetTypes(ind,group_type,draw_type); // プロパティの表示パラメータを定義する
return(true);
}
//— プロパティがいずれの列挙にも属しない
return(false);
}
//+——————————————————————+
//| プロパティを格納すべきグループ、ならびにその表示タイプを                           |
//| 定義する                                                           |
//+——————————————————————+
void GetTypes(const int property_number,uint &group_type,uchar &draw_type)
{
//— プロパティが3 番目のグループに属するかどうかチェックする
//— 3 番目のグループのプロパティは、CHART_BRING_TO_TOP から始まる2 番目の列に表示されている
if(CheckThirdGroup(property_number,group_type,draw_type))
return;
//— プロパティが 2 番目のグループに属するかどうかチェックする
//— 2 番目のグループのプロパティは、2 番目の列に表示されている
if(CheckSecondGroup(property_number,group_type,draw_type))
return;
//— ここに来た場合、プロパティは最初のグループ(最初の列)に属している
CheckFirstGroup(property_number,group_type,draw_type);
}
//+———————————————————————-+
//| プロパティが3 番目のグループに属するかどうかチェックして、                               |
//| 属する場合はその表示タイプを定義する                                           |
//+———————————————————————-+
bool CheckThirdGroup(const int property_number,uint &group_type,uchar &draw_type)
{
//— プロパティが3 番目のグループに属するかどうかチェックする
switch(property_number)
{
//— boolean プロパティ
case CHART_IS_OBJECT:
case CHART_WINDOW_IS_VISIBLE:
draw_type=‘B’;
break;
//— integer プロパティ
case CHART_VISIBLE_BARS:
case CHART_WINDOWS_TOTAL:
case CHART_WINDOW_HANDLE:
case CHART_WINDOW_YDISTANCE:
case CHART_FIRST_VISIBLE_BAR:
case CHART_WIDTH_IN_BARS:
case CHART_WIDTH_IN_PIXELS:
draw_type=‘I’;
break;
//— double 型プロパティ
case CHART_PRICE_MIN:
case CHART_PRICE_MAX:
draw_type=‘D’;
break;
//— 実際には、このプロパティはチャートを他の全てのチャートの上に表示するコマンドである
//— このウィンドウは使用される前には常に他のウィンドウの上にあるので
//— パネルに適用する要はない
case CHART_BRING_TO_TOP:
draw_type=‘ ‘;
break;
//— プロパティが3 番目のグループに属しない
default:
return(false);
}
//— プロパティが3 番目のグループに属す
group_type=3;
return(true);
}
//+———————————————————————-+
//| プロパティが第 2 グループに属するかどうかチェックして、                                |
//| 属する場合はその表示タイプを定義する                                          |
//+———————————————————————-+
bool CheckSecondGroup(const int property_number,uint &group_type,uchar &draw_type)
{
//— プロパティが 2 番目のグループに属するかどうかチェックする
switch(property_number)
{
//— ENUM_CHART_MODE 型のプロパティ
case CHART_MODE:
draw_type=‘M’;
break;
//— ENUM_CHART_VOLUME_MODE 型のプロパティ
case CHART_SHOW_VOLUMES:
draw_type=‘V’;
break;
//— string 型プロパティ
case CHART_COMMENT:
draw_type=‘S’;
break;
//— color プロパティ
case CHART_COLOR_BACKGROUND:
case CHART_COLOR_FOREGROUND:
case CHART_COLOR_GRID:
case CHART_COLOR_VOLUME:
case CHART_COLOR_CHART_UP:
case CHART_COLOR_CHART_DOWN:
case CHART_COLOR_CHART_LINE:
case CHART_COLOR_CANDLE_BULL:
case CHART_COLOR_CANDLE_BEAR:
case CHART_COLOR_BID:
case CHART_COLOR_ASK:
case CHART_COLOR_LAST:
case CHART_COLOR_STOP_LEVEL:
draw_type=‘C’;
break;
//— プロパティが第 2 グループに属しない
default:
return(false);
}
//— プロパティが3 番目のグループに属す
group_type=2;
return(true);
}
//+———————————————————————–+
//| プロパティが第 2 及び第三のプロパティグループに属していないことだけが既に知られている時のみに    |
//| 呼び出される                                                             |
//+———————————————————————–+
void CheckFirstGroup(const int property_number,uint &group_type,uchar &draw_type)
{
//— プロパティが1 番目のグループに属す
group_type=1;
//— プロパティの表示タイプを定義する
switch(property_number)
{
//— integer プロパティ
case CHART_SCALE:
case CHART_HEIGHT_IN_PIXELS:
draw_type=‘I’;
return;
//— double 型プロパティ
case CHART_SHIFT_SIZE:
case CHART_FIXED_POSITION:
case CHART_FIXED_MAX:
case CHART_FIXED_MIN:
case CHART_POINTS_PER_BAR:
draw_type=‘D’;
return;
//— boolean プロパティのみが残される
default:
draw_type=‘B’;
return;
}
}
//+——————————————————————+
//| プロパティのラベルとボタンを作成する                                         |
//+——————————————————————+
bool ShowProperty(const int ind,const int type,const int x1,const int x2,
const int xb,const int y,const bool btn)
{
//— ExtColors 色配列の内部を切り替えるための静的変数
static uint color_index[3]={1,1,1};
//— 別の色を受け取るためにインデックスを変更する
color_index[type]=1-color_index[type];
//— プロパティのラベルとボタン(btn=true の場合)を表示する
if(!LabelCreate(ExtLabelsName[ind],“name_”+(string)ind,ExtNames[ind],ExtColors[color_index[type]],x1,y))
return(false);
if(!LabelCreate(ExtLabelsValue[ind],“value_”+(string)ind,“”,ExtColors[color_index[type]],x2,y))
return(false);
if(btn && !ButtonCreate(ExtButtons[ind],(string)ind,xb,y+1))
return(false);
//— 実行成功
return(true);
}
//+——————————————————————+
//| ラベルを作成する                                                     |
//+——————————————————————+
bool LabelCreate(CChartObjectLabel &lbl,const string name,const string text,
const color clr,const int x,const int y)
{
if(!lbl.Create(0,“Label_”+name,0,x,y)) return(false);
if(!lbl.Description(text))             return(false);
if(!lbl.FontSize(10))                 return(false);
if(!lbl.Color(clr))                   return(false);
//— 実行成功
return(true);
}
//+——————————————————————+
//| ボタンを作成する                                                      |
//+——————————————————————+
bool ButtonCreate(CChartObjectButton &btn,const string name,
const int x,const int y)
{
if(!btn.Create(0,“Button_”+name,0,x,y,50,15)) return(false);
if(!btn.Description(“Next”))                 return(false);
if(!btn.FontSize(10))                         return(false);
if(!btn.Color(clrBlack))                     return(false);
if(!btn.BackColor(clrWhite))                 return(false);
if(!btn.BorderColor(clrBlack))               return(false);
//— 実行成功
return(true);
}
//+——————————————————————+
//| プロパティの最大値と最小値とステップを定義する                                 |
//+——————————————————————+
void GetMaxMinStep(const int property_number,double &max,double &min,double &step)
{
double value;
//— プロパティ値を型に応じて設定する
switch(property_number)
{
case CHART_SCALE:
max=5;
min=0;
step=1;
break;
case CHART_MODE:
case CHART_SHOW_VOLUMES:
max=2;
min=0;
step=1;
break;
case CHART_SHIFT_SIZE:
max=50;
min=10;
step=2.5;
break;
case CHART_FIXED_POSITION:
max=90;
min=0;
step=15;
break;
case CHART_POINTS_PER_BAR:
max=19;
min=1;
step=3;
break;
case CHART_FIXED_MAX:
value=ChartGetDouble(0,CHART_FIXED_MAX);
max=value*1.25;
min=value;
step=value/32;
break;
case CHART_FIXED_MIN:
value=ChartGetDouble(0,CHART_FIXED_MIN);
max=value;
min=value*0.75;
step=value/32;
break;
case CHART_HEIGHT_IN_PIXELS:
max=700;
min=520;
step=30;
break;
//— 初期値
default:
max=1;
min=0;
step=1;
}
}

Originally posted 2019-07-28 21:16:46.

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">