メタトレーダーのMQL言語でプログラミングする自動売買システム作成サイト メタシス・シーカー

メタトレーダーMQLプログラミング自動売買システム作成サイト メタシス・シーカー
メタトレーダーMQLプログラミング自動売買システム作成サイト メタシス・シーカー メタトレーダー関連書籍 メタトレーダーMQL言語リファレンス日本語翻訳マニュアル 準備中 準備中 このサイト「メタシス・シーカー」について

条件付きグローバル変数設定【GlobalVariableSetOnCondition】

グローバル変数【Global variables】

bool GlobalVariableSetOnCondition(string name, double value, double check_value)


Sets the new value of the existing global variable if the current value equals to the third parameter check_value. If there is no global variable, the function will generate error ERR_GLOBAL_VARIABLE_NOT_FOUND (4058) and return FALSE. When successfully executed, the function returns TRUE, otherwise, it returns FALSE. To get the detailed error information, one has to call the GetLastError() function.
現在の値が、3番目のパラーメータ check_value に等しい場合、既存のグローバル変数に新しい値を設定します。もし、グローバル変数がない場合は、関数はエラー ERR_GLOBAL_VARIABLE_NOT_FOUND (4058) を生成し、FALSE を返します。正常に実行されたときは、関数は TRUE を返します。それ以外の場合は、FALSE を返します。詳細なエラー情報を取得するには、GetLastError() を呼び出します。

If the current value of the global variable differs from the check_value, the function will return FALSE.
グローバル変数が現在の値と check_value と異なる場合は、この関数は FALSE を返します。

The function provides atomic access to the global variable, this is why it can be used for providing of a semaphore at interaction of several experts working simultaneously within one client terminal.
この関数は、グローバル変数への微少アクセスを提供します。これは、1つのクライアント ターミナルの中で同時処理されているいくつかのエキスパートの相互作用のときに、セマフォ(割り込み処理を制御し、同時アクセスによる不整合を防止)を提供するために使用することができます。

Parameters:
パラメータ:
name            -   Global variable name.
                     グローバル変数の名前。

value          -   New value. 
                     新しい値。

check_value   -   Value to be compared to the current global variable value.
                     現在のグローバル変数の値を比較する値。

Sample:
サンプル:
  int init()
    {
     //---- create global variable
     GlobalVariableSet("DATAFILE_SEM",0);
     //...
    }
  
  int start()
    {
     //---- try to lock common resource
     while(!IsStopped())
       {
        //---- locking
        if(GlobalVariableSetOnCondition("DATAFILE_SEM",1,0)==true)  break;
        //---- may the variable be deleted?
        if(GetLastError()==ERR_GLOBAL_VARIABLE_NOT_FOUND) return(0);
        //---- sleeping
        Sleep(500);
       }
     //---- resource locked
     // ... do some work
     //---- unlock resource
     GlobalVariableSet("DATAFILE_SEM",0);
    }






トップページメタトレーダー関連書籍メタトレーダー日本語翻訳MQL言語リファレンス マニュアルこのサイト「メタシス・シーカー」についてサイトマップ
Copyright(C) 2009 MetaSys-Seeker.net All Rights Reserved.
免責事項:当サイト(メタシス・シーカー)のFx外国為替保証金取引、メタトレーダー、自動売買、システムトレード検証、サンプルプログラム、MQL言語リファレンスマニュアルなどの情報に関しては十分に注意した上で掲載するよう努めておりますが、その正確性を保証するものではありません。万一、当サイトに記載されている情報利用によって損害が生じても当サイト運営者は一切責任を負うものではありません。また、当サイトの内容や情報は予告なく変更、中止されることがありますことを予めご了承ください。掲載情報については、ご利用者自身の判断と責任でご利用ください。