ChartSetDouble

指定されたチャートのプロパティに値を設定します。チャートプロパティは double 型でなければなりません。コマンドは、チャートメッセージキューに追加され、以前の全てのコマンドの処理後に実行されます。

bool  ChartSetDouble(
  long                          chart_id,    // チャート識別子
  ENUM_CHART_PROPERTY_DOUBLE    prop_id,      // プロパティ識別子
  double                        value        // 値
  );

パラメータ

chart_id

[in]  チャート識別子。( 0 は現在のチャート)

prop_id

[in]  チャートプロパティ識別子。ENUM_CHART_PROPERTY_DOUBLE の値の 1 つ (読み込み専用のプロパティを除いて)。

value

[in] プロパティ値

戻り値

コマンドがチャートキューに追加された場合は true、そうでない場合は false。エラー情報を取得するには、GetLastError() 関数が呼ばれます。

注意事項

これは非同期関数です。つまり、この関数は、指定されたチャートのキューに正常に追加されたコマンドの実行を待たずに、すぐに制御を返します。プロパティは、チャートキューから適切なコマンドが処理された後にのみ変更されます。チャートキューからコマンドをすぐに実行するには ChartRedraw関数を呼び出します。

複数のチャートプロパティをすぐに一度に変更したい場合は、対応する関数( ChartSetStringChartSetDoubleChartSetString)を1つのコードブロックで実行してからChartRedrawを一回呼び出す必要があります。

コマンドの実行結果を確認するには、関数を使用して、指定されたチャートプロパティ(ChartGetIntegerChartGetDoubleChartSetString)をリクエストしますl。ただし、これらは同期関数であり、実行結果を待つことに注意してください。

例:

//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
void OnStart()
 {
//--- 現在のチャートIDを取得する
  long chart_id = ChartID();
 
//--- ゼロバーの右端からの初期オフセットを割合で保存し、自動スクロールフラグを設定する
  double shift = ChartGetDouble(chart_id, CHART_SHIFT_SIZE);
  bool   scroll= ChartGetInteger(chart_id,CHART_AUTOSCROLL);
 
//--- 自動スクロールチャートフラグをリセットする
  ChartSetInteger(chart_id, CHART_AUTOSCROLL, true);
  PrintFormat("Initial chart shift size: %.2f", shift);
 
//--- ループ内で2.0%から50.0%まで0.5%ずつ増加
  for(int i=20; i<=500; i+=5)
    {
    //--- シフト サイズを i / 10 に設定し、指定された値を操作ログに出力する
    ChartSetDouble(chart_id, CHART_SHIFT_SIZE, i/10.0);
    PrintFormat("Set chart shift size to %.1f%%", i/10.0);
     
    //--- チャートのゼロバーを指定されたシフト距離に維持する
    ChartNavigate(chart_id, CHART_END, 0);
     
    //--- 待機する
    Sleep(16);
    }
 
//--- 初期のチャートシフトと自動スクロールを設定する
  Print("Set the chart shift size to the initial value of ", shift);
  ChartSetDouble(ChartID(), CHART_SHIFT_SIZE, shift);
  ChartSetInteger(chart_id, CHART_AUTOSCROLL, scroll);
 }