SymbolSelect

「気配値表示」 ウィンドウでシンボルを選択したり、ウィンドウからシンボルを削除したりします。

bool  SymbolSelect(
  string  name,      // 銘柄名
  bool    select      // 追加または削除
  );

パラメータ

name

[in] 銘柄名

select

[in] スイッチ。値が false の場合、シンボルは 「気配値表示」 から削除されるべきです。でなければ、シンボルはウィンドウで選択されるべきです。シンボルチャートが開いている、またはシンボルのための建玉がある場合は、シンボルは削除することが出来ません。

戻り値

失敗の場合 false

例:

#define SYMBOL_NAME "GBPHKD"
 
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
void OnStart()
 {
//--- リストにシンボルが存在するかどうかを確認し、見つからない場合は報告して作業を完了する
  bool custom = false;
  if(!SymbolExist(SYMBOL_NAME, custom))
    {
    PrintFormat("'%s' symbol not found in the lists", SYMBOL_NAME);
    return;
    }
   
//--- 気配値ウィンドウにシンボルを追加する
  ResetLastError();
  if(!SymbolSelect(SYMBOL_NAME, true))
    {
    Print("SymbolSelect() failed. Error ", GetLastError());
    return;
    }
//--- シンボルがリストに正常に追加された場合は、気配値表示ウィンドウでそのインデックスを取得し、結果を操作ログに送信する
  int index = SymbolIndex(SYMBOL_NAME);
  PrintFormat("The '%s' symbol has been added to the MarketWatch list. Symbol index in the list: %d", SYMBOL_NAME, index);
   
//--- 気配値表示ウィンドウからシンボルを削除する
  ResetLastError();
  if(!SymbolSelect(SYMBOL_NAME, false))
    {
    Print("SymbolSelect() failed. Error ", GetLastError());
    return;
    }
//--- シンボルがリストに正常に削除された場合は、気配値表示ウィンドウでのインデックスは-1で、削除結果を操作ログに送信する
  index = SymbolIndex(SYMBOL_NAME);
  PrintFormat("The '%s' symbol has been removed from the MarketWatch list. Symbol index in the list: %d", SYMBOL_NAME, index);
 
  /*
  結果:
  The 'GBPHKD' symbol has been added to the MarketWatch list. Symbol index in the list: 12
  The 'GBPHKD' symbol has been removed from the MarketWatch list. Symbol index in the list: -1
  */
 }
//+------------------------------------------------------------------+
//| 気配値表示シンボルリスト内のシンボルインデックスを返す          |
//+------------------------------------------------------------------+
int SymbolIndex(const string symbol)
 {
  int total = SymbolsTotal(true);
  for(int i=0; i<total; i++)
    {
    string name = SymbolName(i, true);
    if(name == symbol)
        return i;
    }
  return(WRONG_VALUE);
 }