資源の読み込みに... 荷物...

MyLanguage ドキュメント

作者: リン・ハーン優しさ, 作成日: 2018-12-14 17:33:09, 更新日: 2019-04-10 09:11:27

[TOC]

  • 基本説明

    • 契約

      商品先物契約,暗号通貨契約

      商品先物/暗号通貨契約

      this_week   OKEX futures contract for current week
      next_week   OKEX futures contract for next week
      quarter     OKEX futures contract for quarter
      
      XBTUSD      BITMEX Perpetual Contract
      
      rb888       Rebar main contract
      MA000       Methanol Index Contract
      rb1901      Rebar contract
      …and so on.
      

      img

      契約を設定する際には,rb1901/rb1905を選択できます 市場データは rb1901,注文取引契約は rb1905

    • 変数

      変数とは,データを保存するためにコンピュータメモリに開かれたスペースである.簡単に言えば,データを保存するために使用される.

      最初の変数を宣言する

      // Assign 1 to the variable a
      a:=1;
      

      M Languageでは, データボリュームから単純な区別がつく:

      1. 単値データ: 0, 1, 'abc のような1つの値のみ
      2. 連続データ: 連続データで構成される単一値データセット,例えば Close (Close price) で,Closeには n サイクル [ 10.1, 10.2, 10.3, 10.4, 10.5... ] の閉値が含まれます.

      変数型と区別する

      1. 文字列タイプ: パッケージを使用する必要があります.文字列タイプは直接使用することはできません. 機能の出力を表示にマッチする必要があります.
      INFO(CLSOE>OPEN,'OK!');
      
      1. 値型:整数,浮動小数点数 (小数点) を含む
      // integer
      int:=2;
      
      // decimal
      float:=3.1;
      
      1. ブル式タイプ, true (真) または false (偽) で 1 または 0 を使います: 1, 0, true (真) または false (偽) 例えば: A:=1>0 このコードを実行した後,A の値は 1 です
      // The current period closing price is greater than -999, you will find that the return value of each cycle is 1, representing true, because the closing price is almost impossible to be negative
      Is_true:=Close>-999;
      
      1. グローバル変数
      VARIABLE:VALUE1:10;     // Declare a global variable with a value of 10 and execute only once.
      
      • 命名規則

        ほとんどのシステムでは,変数命名は,よく知られた Close,C のようなシステム予約された単語 (内蔵変数名,関数名) の使用を許可しません. さらに,純粋な数は許されません. 実際には,英語分析のための主流システムの効率を混乱させる必要はありません. 私はM Languageが英語話者に非常に友好的であると考えています. 次の命名慣例を使用することをお勧めします:

        英語+下記

        // output
        Move_avg_5:=MA(C,5);
        

        英語を好むなら,できるだけ変数の意味を人に理解させて下さい.A1,AAA,BBBなどの命名方法を使用しないでください...信じて下さい,数日後に,再び指標コードをレビューすると,メモリ不足で非常に痛くなるでしょう.同様に,コードを他人にエクスポートするとき,読者のマインドセットは崩壊しているはずです.

        M Languageをできるだけ活用してください! 分析と意思決定の強力なツールになることを願っています.

    • データの種類

      データ型は基本的な概念です プログラミングでは 変数に明示的なデータを割り当てると 変数はデータそのものの型になります

        1. 値型:
        1、2、3、1.1234、2.23456 ……
        
        1. 文字列の種類 (str):
        '1' 、'2' 、'3' ,string type must be wrapped with ''
        
        1. 配列データ:
        a collection of data consisting of a series of single-valued data
        
        1. ブル式 (ブル式):

        true と false と 0 を使います

        // Declare a variable of a numeric type
        var_int := 1;
        // Declare a variable of sequence data
        var_arr := Close;
        // String type can not be declared separately, you need to combine functions
        INFO(C>O, 'rising line');
        
    • オペレーター

      配当取引のシンボルである指標コードを実行するために使用される操作と計算.

      • 割り当てオペレーター

        変数に値を代入する

          1. :

          配分と図への出力を表すコンロン (副図)

          Close1:Close;      // Assign Close to the variable Close1 and output it to the diagram
          
          1. :=

          配分を表す点等は,図表 (メイン図,サブ図...) に出力されず,状態バー表に表示されない.

          Close2:=Close;     // Assign Close to the variable Close2
          
          1. ^^

          2 ^ 記号は割り当てを表し,変数に値を割り当て,それを図に出力します (メイン図).

          lastPrice^^C;
          
          1. ..

          ...,2点,この記号は割り当てを表し,変数に値を割り当て,状態バー表に表示しますが,図に出力しません (メイン図,サブ図...).

          openPrice..O
          
      • 関連演算子

        関連演算子とは,条件式に用いられる双眼演算子である. 2つのデータとの関係を決定するために用いられる.

        返した値:ブーリア式, true (1) は false (0) でなければならない.

          1. > より大きい
          // Assign the result of 2 > 1 to the rv1 variable, at this time rv1=1
          Rv1:=2>1;
          
          1. < より少ない
          // returns false, which is 0, because 2 is greater than 1. :-)
          rv3:=2<1;
          
          1. >=より大きいまたは等しい
          x:=Close;
          // Assign the result of the operation with a closing price greater than or equal to ¥ 10 to the variable rv2
          // Note that since “close” is a sequence of data, when the close>=10 operation is performed, the essence is that each cycle is performed, so each cycle will have a return value of 1, 0.
          rv2:=Close>=10;
          
          1. <=より小さいまたは等しい
          Omitted here
          
          1. = に等しい
          A:=O=C;     // Determine if the opening price is equal to the closing price.
          
          1. <> に等しくありません
          1<>2       // Judgment weather 1 is equal to 2 or not, the return value is 1 (true)
          
      • 論理演算子

        Return value: Boolean type, not true (1), must be false (0)
        
        1. 論理と&&は,代わりに を使用することができ,接続の左側と右側が同時に真である必要があります.
        // determine whether cond_a, cond_b, cond_c is true at the same time,
        cond_a:=2>1;
        cond_b:=4>3;
        cond_c:=6>5;
        cond_a && cond_b and cond_c;    // return value 1, true
        
        1. orは,左側と右側をリンクします. 片側が真実である限り,全体は真実です (true return)
        cond_a:=1>2;
        cond_b:=4>3;
        cond_c:=5>6;
        cond_a || cond_b or cond_c;    // return value 1, true
        
      • 算術演算子

        Return value: numeric type
        

        基本算術演算子の記号の完成です. この記号は4つの算術演算を処理するために使用されます.

        • プラス +

          A:=1+1;      // return 2
          
        • 引く -

          A:=2-1;      // return 1
          
        • 乗算する

          A:=2*2;      // return 4
          
        • 分割して

          A:=4/2;      // return 2
          
    • 機能

      • 機能

        プログラミングの世界では,関数は,実際に特定の関数を実装し,他のコードで呼び出すことができるコードの部分である.一般的な形式は以下のとおりである.

        function(param1,param2,……)
        
        • 構成:

          関数名 (パラメータ1,パラメータ2,...) は,パラメータがない場合もあるが,複数のパラメータがある場合もある.例えば,MA (x,n) は,内部 x の単純な移動平均を表し,MA (x,n) は関数のパラメータである.

          函数を使うとき,関数の基本的な定義,すなわち関数を呼び出すことで得られるデータを理解する必要があります. 一般的に関数はパラメータを持っています. パラメータを入力すると,入力されたデータ型が適合していることを確認する必要があります. 現段階では,ほとんどのIDEのコードヒント機能は非常に不完全です. 与えられたパラメータの特定のデータ型を表示していないため,いくつかのトラブルがあります. MA(x,nの解釈は:

          Return a simple moving average
          usage:
          AVG:=MA(X,N): N's simple moving average of X, algorithm (X1+X2+X3+...+Xn)/N,N supports variables
          

          次に,関数を徹底的に分析し,関数を速く学び,使用する方法を見つけようとします.

      • 返金値

        この関数を素早く学ぶためには,まずは"return value"と呼ばれる概念を理解する必要があります. Returnは,その名前からわかるように, "return"で,その値は"concrete value"であり,得られるデータです.

        // Because it will be used in the following code, use the variable return_value to receive and save the return value of function()
        // retrun_value := function(param1,param2);
        // for example:
        AVG:=MA(C,10); // AVG is retrun_value , “function” function is: MA function, param1 parameter: C is the closing price sequence data, param2 parameter: 10.
        
      • パラメーター

        異なるパラメータを入力すると, 異なる返し値が得られます. 変数式は,

        // variable ma5 receives 5 day closing price moving average
        ma5:=MA(C,5);
        // variable ma10 receives 10 day closing price moving average
        ma10:=MA(C,10);
        

        上記の変数 ma5 の最初のパラメータ X は C (閉値) で,実際には C も関数である (開封以来の閉値順番を返す),しかし,パラメータはありません. 2 番目のパラメータ 5, 10, これは MA () 関数に伝えるために使用されます.私たちは何日間の閉値の移動平均を得たいので,パラメータを通して関数はより柔軟になります.

      • 学ぶ方法

          1. この関数から得られるデータです. この関数から得られるデータです.
          1. 返した値を得るために関数を使います. 返した値が,
          1. パラメータのデータタイプがわからない場合, 返した値が正しく返れません.

        次の機能の紹介では,上記の3つの原則に従ってください.

    • 言語の強化

      • M言語とJavaScript言語間の混合プログラミング

        %%
        // here you can call any API function of FMZ Quant.
        scope.TEST = function(obj) {
            return obj.val * 100;
        }
        %% 
        

      閉じる価格:C 閉じる価格が100倍拡大される: 前回の閉値が100倍拡大される: TEST ((REF ((C, 1)); // マウスはバックテストのK線に移動し,変数の値が表示されます.

      
      - scope object
      
        scope object, you can add attributes and assign anonymous functions to attributes. An anonymous function referenced by this attributes can be called in the M language code section.
      
      - scope.getRefs(obj) function
      
        In the JavaScript code block, call the scope.getRefs(obj) function, which returns the data of the incoming obj object.
      
       The following %%%% of the symbolic package's JavaScript code will get the incoming C closing price when the TEST(C) function is called in the M language code.
        The scope.getRefs function returns all closing prices for this K-line data. Since the throw "stop" interrupt routine is used, the variable “arr” contains only the closing price of the first Bar of k-line. You can try to delete throw "stop" and it will execute the last return of the JavaScript code, returning all the closing price data.
        ```
        %%
        scope.TEST = function(obj){
            var arr = scope.getRefs(obj)
            Log("arr:", arr)
            throw "stop"
            return
        }
        %%
        TEST(C);
        ```
      
      - scope.bars
      
        In the JavaScript code block, access all K line bars.
      
        The TEST function returns a value, 1 is the falling k-line and 0 is the rising line.
        
        ```
        %%
        scope.TEST = function(){
            var bars = scope.bars
            return bars[bars.length - 1].Open > bars[bars.length - 1].Close ? 1 : 0    // can only return values
        }
        %%
        arr:TEST;                                                                      
        ```
      
        ```
        # Note:
        # TEST Received anonymous function, the return value must be a numeric value
        # If the anonymous function has no parameters, write VAR:=TEST directly when calling TEST; write VAR:=TEST(); will report an error.
        # TEST in #scope.TEST must be uppercase.
        ```
      
      - scope.bar
      
        In the JavaScript code block, access the current bar.
      
        Calculate the average of “opening high but closing low” of k-line’s prices.
      
        ```
        %%
        scope.TEST = function(){
            var bar = scope.bar
            var ret = (bar.Open + bar.Close + bar.High + bar.Low) / 4
            return ret
        }
        %%
        avg^^TEST;
        ```
      
      - scope.depth
      
        Access the market depth data (order book)
      
        ```
        %%
        scope.TEST = function(){
            Log(scope.depth)
            throw "stop"             // Throw an exception after printing the depth data, pause.
        }
        %%
        TEST;
        ```
      
      - scope.symbol
      
        Get the current trading pair name string
      
        ```
        %%
        scope.TEST = function(){
            Log(scope.symbol)
            throw "stop"
        }
        %%
        TEST;
        ```
      
      - scope.barPos
      
        Get the K line Bar location.
      
        ```
        %%
        scope.TEST = function(){
            Log(scope.barPos)
            throw "stop"
        }
        %%
        TEST;
        ```
      
      - scope.get\_locals('name')
      
        This function is used to get the variables in the M language code part
      
        ```
        V:10;
        %%
        scope.TEST = function(obj){
            return scope.get_locals('V')
        }
        %%
        GET_V:TEST(C);
        ```
      
        ```
        # Note:
        # If a variable does not calculate data when the period is insufficient, this time the scope.get_locals function is called in the JavaScript code.
        # When get this variable, it will give an error: line:XX - undefined locals a variable name undefined
        ```
      
      
    • 多サイクル参照

      • #EXPORT 公式名... #END を使って公式を作成します.異なる期間のデータだけを取得したい場合は,公式計算なしで空の公式も書くことができます.

        空の式は

        #EXPORT TEST 
        NOP;
        #END           // End
        
      • 使用: #IMPORT [MIN,期間,式名] AS変数値,参照式,設定された期間のデータ (変数値によって得られた閉値,開値など) を取得します.

        コード例:

        // this code demonstrates how to reference formulas of different cycles in the same code
        // #EXPORT extends the syntax, ending with #END as a formula, you can declare multiple
        #EXPORT TEST 
        Mean 1:EMA(C, 20);
        Mean 2:EMA(C, 10);
        #END // End
        
        #IMPORT [MIN,15,TEST] AS VAR15 // Reference formula, K line cycle is 15 minutes
        #IMPORT [MIN,30,TEST] AS VAR30 // Reference formula, K line cycle is 30 minutes
        CROSSUP(VAR15.Mean1, VAR30.Mean1),BPK;
        CROSSDOWN(VAR15.Mean2, VAR30.Mean2),SPK;
        The highest price of 15 mins:VAR15.HIGH;
        The highest price of 30 mins:VAR30.HIGH;
        AUTOFILTER;
        
    • モード説明

      • 1、1つの開口位置と1つの閉じる位置の信号フィルタリングモデル

        モデルでは,AUTOFILTER関数を書き,開口と閉じる1つの信号のフィルタリングを制御し,実現する.複数の開口位置信号が条件を満たす場合,最初の信号が有効信号として取り,次のk線上の同じ信号がフィルタリングされます.

        フィルタリングモデルのサポートされたコマンド: BK, BP, BPK, SK, SP, SPK, CLOSEOUT,BK (5) と他のコマンドをプロットでサポートしない

        E.g:

        MA1:MA(CLOSE,5);
        MA2:MA(CLOSE,10);
        CROSSUP(C,MA1),BK;
        CROSSUP(MA1,MA2),BK;
        C>BKPRICE+10||C<BKPRICE-5,SP;
        AUTOFILTER;
        
      • 2、位置モデルを足すか減算する

        AUTOFILTER 関数はモデルに書き込まれていないので,位置を増加または減少させるために使用できる連続開口位置信号または連続閉じる位置信号を許可する.

        サポートされるコマンド: BK(N), BP(N), SK(N), SP(N), CLOSEOUT, BPK(N), SPK(N, ロッテなしのオープン・クローズ・ポジションはサポートされません. (1) サポートインストラクションのグループ化. (2) 複数の命令条件が同時に満たされている場合,シグナルは条件文が記述されている順序で実行されます. 例えば:

        MA1:MA(CLOSE,5);
        MA2:MA(CLOSE,10);
        CROSSUP(C,MA1),BK(1);
        CROSSUP(MA1,MA2),BK(1);
        C>BKPRICE+10||C<BKPRICE-5,SP(BKVOL);
        
      • 3、1つの信号モデルを持つ1つのK線

        1つの信号モデルを持つ1つのK線は,閉値モデルと指示価格モデルに分けられる.

        1) 閉店価格モデル

        K線は計算信号を通過して注文をします (計算はK線を形成する際に行われます.このとき,信号は不確実であり,k線が終わらないときに現れる信号は無視され,注文は行われません)

        信号の方向は待機位置の方向と一致し,信号の消失状態はありません.

        E.g:
        MA1:MA(CLOSE,5);
        MA2:MA(CLOSE,10);
        CROSSUP(MA1,MA2),BPK;//5 cycle moving average line up cross 10 cycle moving average line to buy long.
        CROSSDOWN(MA1,MA2),SPK;//5 cycle moving average line down cross 10 cycle moving average line to sell short.
        AUTOFILTER;
        

        (2) 指示価格モデル

        k線が完了したかどうかにかかわらず,信号は計算され,注文はリアルタイムで,つまりK線が完了する前に行われます.

        位置の方向がk線の終わりの信号の方向と一致しない場合,位置は自動的に同期されます.

        E.g:

        MA1:MA(CLOSE,5);
        MA2:MA(CLOSE,10);
        CROSSUP(MA1,MA2),BPK;//5 cycle moving average line up cross 10 cycle moving average line to buy long.
        CROSSDOWN(MA1,MA2),SPK;//5 cycle moving average line down cross 10 cycle moving average line to sell short.
        AUTOFILTER;
        
      • 4、複数の信号モデルを持つ1つのK線

        このモデルは,単一のK線から複数の信号を制御し実装するために,マルチシグまたはマルチシグ_ミンを使用します.

        k線が完了したかどうかに関わらず 信号を計算してリアルタイムで注文します

        信号は再確認されず,信号の消失状態がないし,信号の方向は位置の方向と一致している.

        複数の信号条件が満たされている場合,K線で繰り返し複数の実行

        E.g:
        MA1:MA(CLOSE,5);
        MA2:MA(CLOSE,10);
        CROSSUP(MA1,MA2),BK;
        C>BKPRICE+10||C<BKPRICE-5,SP;
        AUTOFILTER;
        MULTSIG(0,0,2,0);
        

        サプリメント: 1、ポジションモデルを足し,引く,k線信号の2つの方法:閉値プレスオーダーと指示値プレスオーダーがすべてサポートされています.

        2、追加と引く位置モデル,また,単一のk線信号をサポートします.

        位置モデルを足し減算する, multsig または multsig_min 関数を書き,k 行の位置を複数回足し減算する,または位置を複数回減算する.

    • 図表表示

      • メイン図 追加指標

        変数に値を代入する際に,メイン画像に表示される指標を設定するために,操作符 ^^ を使用します.

        MA60^^MA(C, 60);  // Calculate the moving average indicator with a parameter of 60
        

        img

      • 副図の追加指標

        変数に値を代入する際に,二次図に表示される指標を設定するために,操作符 : を使用します.

        ATR:MA(MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)),26);    // Assign a value to the ATR variable, The ":" symbol is followed by the formula for calculating the ATR
        

        主要またはサブ図に表示したくない場合 ...演算子を使います

        MA60..MA(C, 60);  // Calculate the moving average indicator with a parameter of 60
        

        M言語に精通しているユーザーの習慣に合わせて ラインタイプ,色などを設定できます

    • 一般 的 な 問題

      指標の作成に際してよく見られる問題,通常は指標の作成時に注意を払う必要があるポイントを紹介する. (続き)

      • の終わりに注意してください.

      • システムキーワードは変数として宣言できないことに注意してください.

      • 文字列は単一の引引符を使用していることに注意してください.例えば: 開き 単一の引符.

      • コメント

        アノテーション

        • // The content of the comment実行プロセス中にコードがコンパイルされないことを意味します. つまり,その背後にあるコンテンツは実行されません. 通常,コードの意味をコードのレビューを容易にするために使用します. 理解,思い出す

        • { Comment content }コメントをブロック

          A:=MA(C,10);
          {The previous line of code is the calculation of the moving average.}
          
        • (* Comment content *)コメントをブロック

          A:=MA(C,10);
          (*The previous line of code is the calculation of the moving average.*)
          
      • 入力方法

        コードを書くとき,入力方法が中国語と英語の間で切り替わるため,しばしばシンボルのエラーが発生します.一般的なタイプは以下のとおりです:コロン:,ターミネーター;コマ,括弧 (),など,中国語と英語のこれらの異なる文字には注意を払う必要があります.

      • 誤りやすい論理

        1. 少なくとも 2 よりも少なくない 2 よりも少なくない:対応する関係演算子>=
        2. 最長 最長: 対応する関係演算子<=
  • K行データ参照

    • オープン

      K線チャートのオープニング価格を取得

      オープニング価格

      機能:OPEN,略してO

      パラメーター: 無

      説明: サイクル開始価格を返します.

      配列データ

      OPEN obtained the opening price of the K-line chart.
      
      Note:
      1、can be shorthand as O.
      
      example 1:
      OO:=O;           //Define OO as the opening price; pay attention to the difference between O and 0.
      example 2:
      NN:=BARSLAST(DATE<>REF(DATE,1));
      OO:=REF(O,NN);   //Get the opening price of the day
      example 3:
      MA5:=MA(O,5);    //Define the 5-period moving average of the opening price (O is OPEN shorthand).
      
    • 高い

      K線チャートの最高値を取得

      最高価格

      機能:HIGH,Hの略

      パラメーター: 無

      説明: サイクルの最高価格を返します.

      配列データ

      HIGH Get the highest price of the K-line chart.
      
      Note:
      1、can be shorthand as H.
      
      example 1:
      HH:=H;         //Define HH as the highest price.
      example 2:
      HH:=HHV(H,5);  //Take the maximum value of the highest price within 5 cycles.
      example 3:
      REF(H,1);      //Take the highest price of the previous K line
      
    • 低い

      K線チャートの最低価格を取得します.

      最安値

      機能:LOW,略してL

      パラメーター: 無

      説明: サイクルで最も低い価格を返します.

      配列データ

      LOW gets the lowest price of the K-line chart.
      
      Note:
      1、can be shorthand as L.
      
      example 1:
      LL:=L;            //Define LL as the lowest price.
      example 2:
      LL:=LLV(L,5);     //Get the minimum value of the lowest price in 5 cycles.
      example 3:
      REF(L,1);         //Get the lowest price of the previous K line
      
    • 接近する

      K線チャートの閉値を取得します.

      決済価格

      機能: CLOSE,Cの略

      パラメーター: 無

      説明: サイクルの終了価格を返します

      配列データ

      CLOSE Get the closing price of the K-line chart.
      
      Note:
      1、When the k-line in the market is not finished, get the latest price.
      2、Can be shorthand as C.
      
      example 1:
      A:=CLOSE;          //Define the variable A as the closing price (A is the latest price when the k line is not finished).
      example 2:
      MA5:=MA(C,5);      //Define the 5-period moving average of the closing price (C is short for CLOSE).
      example 3:
      A:=REF(C,1);       //Get the closing price of the previous k line.
      
    • VOL

      K線図の音量を取得

      取引量

      機能:VOL,略してV

      パラメーター: 無

      説明: このサイクルの音量を返します.

      配列データ

      VOL gets the volume of the K-line chart.
      
      Note:
      Can be shorthand as V.
      The return value of this function on the root TICK is the cumulative value of all TICK transactions for the day.
      
      example 1:
      VV:=V;       //Define VV as volume
      example 2:
      REF(V,1);    //indicates the volume of the previous cycle
      example 3:
      V>=REF(V,1); //The volume is greater than the volume of the previous cycle, indicating that the volume increases (V is short for VOL).
      
    • REF

      前向きの参照

      Reference the value of X before N cycles.
      
      Note:
      1、When N is a valid value, but the current number of k lines is less than N, a null value is returned;
      2、When N is 0, the current X value is returned;
      3、When N is null, it returns a null value.
      4、N can be a variable
      
      example 1:
      REF(CLOSE,5); indicates the closing price of the 5th cycle before the current cycle
      example 2:
      AA:=IFELSE(BARSBK>=1,REF(C,BARSBK),C);//Take the closing price of the K line of latest buying long of the open position signal
      //1) When the k-line BARSBK of the BK signal returns a null value, the k-line REF(C, BARSBK) of the BK signal is returned.
      Null value;
      //2)When the BK signal is sent, the k-line BARSBK returns a null value, and if the BARSBK>=1 is not satisfied, then send the closing price of the k-line.
      //3)The k-line BARSBK after the BK signal is sent returns the number of cycles of the K-line of the open position from the current K-line, REF(C, BARSBK)
      Returns the closing price of the opening k line.
      //4)Example: 1, 2, 3 three k lines, 1 K line is the opening position signal K line, then return the closing price of this k line, 2, 3
      K line returns the closing price of the 1 K line.
      
    • ユニット

      データ契約のトランザクション単位を例に

      Take the trading unit of the data contract.
      usage:
      UNIT takes the trading unit of the data loading contract.
      

      商品の将来性

      ユニットの価値は契約に関連しています

      rb contract - 1 hand, 10 (tons)
      

      仮想通貨スポット

      UNIT 値は 1 です.

      仮想通貨先物 ユニットの価値は契約通貨に関連しています

      OKEX Futures: 1 BTC contract represents $100, and 1 contract in other currencies represents $10
      
    • 価格について

      データ契約の最低価格変更

      Take the minimum price change of the data contract.
      usage:
      MINPRICE; Take the minimum price change for loading data contracts.
      
    • MINPRICE1

      取引契約の最小変更

      Take the minimum price change of the trading contract.
      usage:
      MINPRICE1; Take the minimum price change of the trading contract.
      
  • 時間関数

    • バルポス

      Take the position of the K line
      
      BARPOS,returns the number of cycles from the first K line to the current cycle.
      
      Note:
      1、BARPOS returns the number of existing K lines in the local area, starting from the data existing on the local machine.
      2、The return value of the first K line already on the local machine is 1.
      
      example 1:LLV(L,BARPOS);//Find the minimum value of the local existing data.
      
      example 2:IFELSE(BARPOS=1,H,0);//The current K line is the highest value of the first K line already in the local machine, otherwise it is 0.
      
    • 期間

      周期値は分数である.

      1, 3, 5, 15, 30, 60, 1440
      
    • 日付

      日付

      機能:日付

      パラメーター: 無

      説明: 1900年から周期の日付を取得

      配列データ

    • タイム

      Kラインの時間を取って

      TIME,take the K line time.
      
      Note:
      1、The function returns in real time on the real-market, and returns the start time of the K line after the K line is finished.
      2、The function returns the exchange data reception time, which is the exchange time.
      3、The TIME function returns a six-digit form when used in the second period, ie: HHMMSS, which is displayed in four-digit form on other periods, namely: HHMM.
      4、The TIME function can only be loaded in the period below the daily period. The return value of the function is always 1500 in the period above the daily period (Included the daily period).
      5、use the TIME function to close the position of the tail operation needs attention
      (1) The time set by the end of the closing position is recommended to be set to the actual time that can be taken in the K line return value (eg, the RB index is 5 minutes, the last K line return time is 1455, and the tail closing position is set to TIME> =1458, CLOSEOUT; the signal that the tail is closed can not appear in the effect test)
      (2)	Using the TIME function as the condition for closing the position at the end of the market, it is recommended to open position condition also to make the corresponding time limit (such as setting the closing condition of the tail to TIME>=1458, CLOSEOUT; then the corresponding opening conditions are required Add condition TIME<1458; avoid opening the position again after closing the position)
      
      example 1:
      C>O&&TIME<1450,BK;
      C<O&&TIME<1450,SK;
      TIME>=1450,SP;
      TIME>=1450,BP;
      AUTOFILTER;
      //Close the position after 14:50.
      example 2:
      ISLASTSK=0&&C>O&&TIME>=0915,SK;
      
    • 年間

      年数

      YEAR,the year is obtained.
      
      Note:
      YEAR ranges from 1970—2033。
      
      example 1:
      N:=BARSLAST(YEAR<>REF(YEAR,1))+1;
      HH:=REF(HHV(H,N),N);
      LL:=REF(LLV(L,N),N);
      OO:=REF(VALUEWHEN(N=1,O),N);
      CC:=REF(C,N);//take the highest price, the lowest price, the opening price, and the closing price of the previous year.
      example 2:
      NN:=IFELSE(YEAR>=2000 AND MONTH>=1,0,1);
      
    • サイクルの月を返します

      MONTH, returns the month of a cycle.
      
      Note:
      MONTH has a value range of 1-12.
      
      example 1:
      VALUEWHEN(MONTH=3&&DAY=1,C);//The closing price is taken when the K-line date is March 1.
      example 2:
      C>=VALUEWHEN(MONTH<REF(MONTH,1),O),SP;
      
    • 周期内の日数を取得します.

      DAY, returns the number of days in a cycle.
      
      Note:
      The DAY value ranges from 1-31.
      
      example 1:
      DAY=3&&TIME=0915,BK;//From the date of 3 days, the time is 9:15, buy long.
      example 2:
      N:=BARSLAST(DATE<>REF(DATE,1))+1;
      CC:=IFELSE(DAY=1,VALUEWHEN(N=1,O),0);//When the date is 1, the opening price is taken, otherwise the value is 0.
      
    • 時数

      時数

      HOUR,Returns the number of hours in a cycle.
      
      Note:
      HOUR ranges from 0 to 23
      
      example 1:
      NX:=BARSLAST(CROSS(HOUR=9,0.5));
      DRAWLINE3(CROSSDOWN(HOUR=14,0.5),REF(H,NX),NX,CROSSDOWN(HOUR=14,0.5),REF(H,1),1,0),COLORGREEN;
      //Connect 9:00 to the latest k-line high point before the market close.
      example 2:
      HOUR=10;//The return value is 1 on the K line at 10:00, and the return value on the remaining K lines is 0.
      
    • 1分前

      1分前

      MINUTE, Returns the number of minutes in a cycle.
      
      Note:
      1:MINUTE has a value range of 0-59
      2:This function can only be loaded on the minute period, returning the number of minutes since the current K line.
      example 1:
      MINUTE=0;//The return value on the minute K line at the beginning of an hour is 1, and the remaining K lines return a value of 0.
      example 2:
      TIME>1400&&MINUTE=50,SP;//close position at 14:50.
      
    • 週日

      週数を取得します.

      WEEKDAY, get the number of weeks.
      
      Note:
      1:WEEKDAY has a value range of 0-6.
      2:The value displayed by the function on the weekly cycle is always 5, and the number of weeks on the day of the end of the K line is returned on the monthly cycle.
      
      example 1:
      N:=BARSLAST(MONTH<>REF(MONTH,1))+1;
      COUNT(WEEKDAY=5,N)=3&&TIME>=1450,BP;
      COUNT(WEEKDAY=5,N)=3&&TIME>=1450,SP;
      AUTOFILTER;//each month delivery date is automatically closed all position at the end of that day.
      example 2:
      C>VALUEWHEN(WEEKDAY<REF(WEEKDAY,1),O)+10,BK;
      AUTOFILTER;
      
  • 論理 的 な 判断 の 機能

    • バルストータス

      現在のサイクルの位置状態を返します.

      BARSTATUS returns the position status of the current cycle.
      
      Note:
      The function returns 1 to indicate that the current cycle is the first cycle, return 2 to indicate the last cycle, and return 0 to indicate that the current cycle is in the middle position.
      
      example:
      A:=IFELSE(BARSTATUS=1,H,0); //If the current K line is the first cycle, the variable A returns the highest value of the K line, otherwise it takes 0.
      
    • その間

      その間

      BETWEEN(X,Y,Z) indicates whether X is between Y and Z, and returns 1 (Yes), otherwise returns 0 (No).
      
      Note:
      1、If X=Y, X=Z, or X=Y and Y=Z, the function returns a value of 1 (Yse).
      
      example 1:
      BETWEEN(CLOSE,MA5,MA10); //indicates that the closing price is between the 5-day moving average and the 10-day moving average.
      
    • クロス

      交差関数

      CROSS(A,B) means that A passes B from the bottom to up, and returns 1 (Yes), otherwise it returns 0 (No).
      
      Note:
      1、The conditions for crossing must satisfy A<=B of pervious k line, and it is confirmed as crossing when the current k-line satisfies A>B.
      
      example 1:
      CROSS(CLOSE,MA(CLOSE,5)); //means the crossing line from below through the 5-period moving average
      
    • 横切って

      横断する

      CROSSDOWN(A,B):indicates that when A down crossing B from above, it returns 1 (Yes), otherwise it returns 0 (No).
      
      Note:
      1、CROSSDOWN (A, B) is equivalent to CROSS (B, A), CROSSDOWN (A, B) is written to better understand
      
      example 1:
      MA5:=MA(C,5);
      MA10:=MA(C,10);
      CROSSDOWN(MA5,MA10),SK; //MA5 down cross MA10, sell short
      //CROSSDOWN(MA5,MA10),SK; and CROSSDOWN(MA5,MA10)=1, SK; express the same meaning
      
    • クロスアップ

      横断する

      CROSSUP(A,B) When A passes up from bottom to B, it returns 1 (Yes), otherwise it returns 0 (No)
      
      Note:
      1、CROSSUP (A, B) is equivalent to CROSS (A, B), CROSSUP (A, B) is written to better understand.
      
      example 1:
      MA5:=MA(C,5);
      MA10:=MA(C,10);
      CROSSUP(MA5,MA10),BK;//MA5 cross up MA10, buy long.
      //CROSSUP(MA5,MA10),BK; and CROSSUP(MA5,MA10)=1, BK; express the same meaning
      
    • すべて

      要求事項を満たしているかどうかを確認する

      EVERY(COND,N),judge whether the COND condition is always satisfied in the N period. If it is, the function returns a value of 1; if it is not, the function returns a value of 0;
      
      Note:
      1、N contains the current k line.
      2、If N is a valid value, but there are not many K lines in front of it, or N is a null value, the condition is not satisfied, and the function returns 0.
      3、N can be a variable
      
      example 1:
      EVERY(CLOSE>OPEN,5);//indicates that it has been a positive line for 5 cycles.
      example 2:
      MA5:=MA(C,5);//Define a 5-cycle moving average
      MA10:=MA(C,10);//Define the 10-cycle moving average
      EVERY(MA5>MA10,4),BK;//MA5 is greater than MA10 in 4 cycles, then buy long.
      //EVERY(MA5>MA10,4),BK; and EVERY(MA5>MA10,4)=1, BK; express the same meaning
      
    • 存在している

      満足度があるかどうかを判断する

      EXIST(COND,N) determines whether there are conditions for satisfying COND in N cycles
      
      Note:
      1、N contains the current k line.
      2、N can be a variable.
      3、If N is a valid value, but there are not many K lines in front of it, calculate according to the actual number of cycles.
      
      example 1:
      EXIST(CLOSE>REF(HIGH,1),10);indicates whether there is a maximum price in the 10 cycles that is greater than the previous period, if it exist, return 1, and if it does not exist, returns 0.
      example 2:
      N:=BARSLAST(DATE<>REF(DATE,1))+1;
      EXIST(C>MA(C,5),N);//Indicates whether there is a k line that meets the closing price greater than the 5-period moving average. If it exist, return 1, and if it does not exist, return 0.
      
    • IF について

      条件関数

      IF(COND,A,B) Returns A if the COND condition is true, otherwise returns B
      
      Note:
      1、COND is a judgment condition; A and B can be conditions or numerical values.
      2、the function supports the variable loop to reference the previous period of its own variable, that is, support the following writing method Y: IF (CON, X, REF (Y, 1));
      example 1:
      IF(ISUP,H,L);// k line is the rising line, take the highest price, otherwise take the lowest price
      example 2:
      A:=IF(MA5>MA10,CROSS(DIFF,DEA),IF(CROSS(D,K),2,0));//When MA5>MA10, take whether DIFF is cross up the DEA, otherwise (MA5 Not greater than MA10), when K, D is down crossing, let A be assigned a value of 2. If the above conditions are not met, A is assigned a value of 0.
      A=1,BPK;//When MA5>MA10, use DIFF cross up DEA as the buying long condition
      A=2,SPK;//When MA5 is not greater than MA10, K D down crossing are used as selling short conditions
      
    • IFELSE

      条件関数

      IFELSE(COND,A,B) Returns A if the COND condition is true, otherwise returns B
      
      Note:
      1、COND is a judgment condition; A and B can be conditions or numerical values.
      2、the function supports the variable loop to refer to the previous period of its own variable, that is, supports the following writing method Y: IFELSE (CON, X, REF (Y, 1));
      example 1:
      IFELSE(ISUP,H,L);//k line is the rising line, take the highest price, otherwise take the lowest price
      example 2:
      A:=IFELSE(MA5>MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0)); //When MA5>MA10, whether DIFF up cross DEA, otherwise (MA5 Not greater than MA10), when K, D down cross, let A be assigned a value of 2. If the above conditions are not met, A is assigned a value of 0.
      A=1,BPK;//When MA5>MA10, use DIFF up cross DEA as the buying long condition
      A=2,SPK;//When MA5 is not greater than MA10, K, D down cross are used as selling short conditions
      
    • 契約書

      指定された契約

      weather ISCONTRACT(CODE) is currently the specified contract.
      
      Usage:ISCONTRACT(CODE); is the current contract returns 1, not the current contract returns 0.
      
      Note:
      1、When judging whether it is a specified contract, CODE can be the transaction code of the contract.
      
      example:
      ISCONTRACT('MA888');
      ISCONTRACT('rb1901');
      ISCONTRACT('this_week');    // cryptocurrency OKEX Futures Contract
      ISCONTRACT('XBTUSD');       // cryptocurrency BITMEX Futures Contract
      

      正式式表現のサポート

      契約を決定する

      ISCONTRACT('this_week');                     // Determine if the current contract is OKEX futures this_week (week) contract
      

      取引所の名前を判断する

      ISCONTRACT('@Futures_(CTP|BitMEX)');         // Determine whether the current exchange object is a commodity futures or a cryptocurrency BITMEX futures exchange
      ISCONTRACT('@(OKEX|Bitfinex|Futures_CTP)');  // To determine the exchange, you need to add @ character at the beginning
      
    • ダウン

      落ちるK線

      ISDOWN determines whether the cycle is falling
      
      Note:
      1、ISDOWN is equivalent to C<O
      
      example:
      ISDOWN=1&&C<REF(C,1),SK;//When the current k line is finished and the closing price is lower than the closing price of the previous period, then selling short
      //ISDOWN=1&&C<REF(C,1),SK; is equivalent to ISDOWN&&C<REF(C,1),SK;
      
    • ISEQUAL について

      開始価格と終了価格が等しい

      ISEQUAL determines if the cycle is "The opening price equal to closing price"
      
      Note:
      1、ISEQUAL is equivalent to C=O
      
      example 1:
      EVERY(ISEQUAL=1,2),CLOSEOUT; //continue for 2 k lines are “The opening price equal to closing price
      

,そしてすべての位置を閉じます.

```
  • ISLASTBAR

    サイクルが最後のK線であるかどうかを決定する

    ISLASTBAR determines if the cycle is the last k line
    
    example 1:
    VALUEWHEN(ISLASTBAR=1,REF(H,1));//The current k-line is the last k-line, taking the highest price of the previous cycle.
    
  • ISNULL

    NULL を決定する

    ISNULL determine whether it is null or not
    
    Usage:ISNULL(N);if N is null, the function returns 1; if N is non-null, the function returns 0.
    
    Example: MA5:=IFELSE(ISNULL(MA(C,5))=1, C,MA(C,5));//Define a five-period moving average. When the number of K-lines is less than five, return the current K-line closing price.
    
  • ISUP

    上昇線

    ISUP determines whether the cycle is rising
    
    Note:
    1、ISUP is equivalent to C>O
    
    example:
    ISUP=1&&C>REF(C,1),BK;   //If the current k line is a rising k line and the closing price is greater than the closing price of the previous period, then buying long.
                             //ISUP=1&&C>REF(C,1),BK; and ISUP&&C>REF(C,1),BK;
                             //Express the same meaning
    
  • 最後の

    機能 を 特定 する

    LAST(COND,N1,N2) Determines whether the COND condition has been met for the past N1 to N2 cycles.
    
    Note:
    1、If N1 and N2 differ by only one cycle (eg, N1=3, N2=2), the function judges whether the condition is satisfied on the cycle closest to the current K line (ie, whether the K line in the past N2 cycles is meeting the conditions)
    2、When N1/N2 is a valid value, but the current k-line number is less than N1/N2, or N1/N2 null, means is not true, and the function returns 0.
    3、N1 and N2 cannot be variables.
    
    example 1:
    LAST(CLOSE>OPEN,10,5); // indicates that it has been a rising line from the 10th cycle to the 5th cycle in the past.
    example 2:
    MA5:=MA(C,5);
    LAST(C>MA5,4,3);//determine whether the K line from the current k-line 3 cycles satisfies “C greater than MA5”.
    
  • ロングクロス

    クロス 機能 を 維持 する

    LONGCROSS(A,B,N) indicates that A is less than B in N cycles, and this cycle A up cross B from bottom to top.
    
    Note:
    1、When N is a valid value, but the current k-line number is less than N, the LONGCROSS function returns a null value.
    2、N does not support variables.
    
    example 1:
    LONGCROSS(CLOSE,MA(CLOSE,10),20); //indicates that the closing price continues below the 10-day moving average for 20 cycles and then up cross the 10-day moving average from bottom to top.
    
  • はい

    知らない

    NOT(X):Take a non. Returns 1 when X=0, otherwise returns 0.
    example 1:
    NOT(ISLASTBK); If the previous signal is not a BK signal, the NOT (ISLASTBK) returns a value of 1; the previous signal is a BK signal, and the NOT (ISLASTBK) returns a value of 0.
    example 2:
    NOT(BARSBK>=1)=1;//The BK signal is sent to the current K line to satisfy the condition.
    //NOT(BARSBK>=1)=1 is equivalent to NOT (BARSBK>=1).
    
  • NULL

    NULL を返します

    Return null
    usage:
    MA5:=MA(C,5);
    MA10:=MA(C,10);
    A:=IFELSE(MA5>MA10,MA5,NULL),COLORRED;//When MA5>MA10, draw the five-day moving average MA5, when MA5>MA10 is not satisfied, return null value, no drawing line.
    
  • VALUEWHEN

    価値

    VALUEWHEN(COND,X) Takes the current value of X when the COND condition is true. If the COND condition is not true, take the value of X when the COND condition is established last time.
    
    Note:
    X can be either a numerical value or a condition.
    
    example 1
    VALUEWHEN(HIGH>REF(HHV(HIGH,5),1),HIGH);indicates that the current highest price is greater than the maximum value of the highest price of the first five cycles and returns the current highest price.
    example 2:
    VALUEWHEN(DATE<>REF(DATE,1),O);indicates the opening price of the first k-line of the day
    example 3:
    VALUEWHEN(DATE<>REF(DATE,1),L>REF(H,1));//indicates whether the current lowest price on the first k line of the day is greater than the highest price of the last K line yesterday. Returns 1, indicating that there is a price gap on that day. Returns 0, indicating that there are no price gap on that day.
    
  • ループ実行機能

    • ロップ2

      ループ条件関数

      LOOP2(COND,A,B); loop condition function Returns A if the COND condition is true, otherwise returns B
      
      Note:
      1、COND is a judgment condition; A and B can be conditions or numerical values.
      2、the function supports variable loop reference to the previous period of its own variable, that is, support the following writing method Y: = LOOP2 (CON, X, REF (Y, 1));
      
      example 1:
      X:=LOOP2(ISUP,H,REF(X,1));//k line is the rising line, take the highest price of the current K line, otherwise take the highest price of the pervious K line that is a rising k line; if it has not appeared before, X returns null
      
      example 2:
      BB:=LOOP2(BARSBK=1,LOOP2(L>LV(L,4),L,LV(L,4)),LOOP2(L>REF(BB,1),L,REF(BB,1)));//When holding long position, the lowest price in the first 4 cycles of opening position k line is the starting stop loss point BB, if the lowest price of the subsequent K line is higher than the previous lowest price, taking the current lowest price as stop loss point, otherwise take the previous lowest point to be the stop loss point.
      SS:=LOOP2(BARSSK=1,LOOP2(H<HV(H,4),H,HV(H,4)),LOOP2(H<REF(SS,1),H,REF(SS,1)));// When holding short position, the highest price in the first 4 cycles of opening position k line is the starting stop loss point SS, if the highest price is lower than the previous highest price, taking the current highest price as stop loss point, Otherwise take the previous high point as stop lose points
      H>HV(H,20),BK;
      L<LV(L,20),SK;
      C<BB,SP;
      C>SS,BP;
      AUTOFILTER;
      
      
  • 財務統計の機能

    • バースカウント

      最初の有効期間から現在の周期までの周期数

      BARSCOUNT(COND) The number of cycles that the first valid period to the current one
      
      Note:
      1、The return value is the number of cycles from which the COND is calculated from the first valid period and up to now.
      2、The return value of BARSCOUNT(COND) on the current k line on the condition that the condition is first established is 0.
      
      example:
      BARSCOUNT(MA(C,4));//The calculation MA(C,4) has the first return value to the current number of cycles.
      
    • バースラスト

      最後の条件は真である

      BARSLAST(COND):The last condition COND was established to the current number of cycles
      
      Note:
      1、The return value of BARSLAST(COND) on the current k line is 0.
      
      example 1:
      BARSLAST(OPEN>CLOSE); //The number of cycles from the previous falling k line to the present
      Example 2:
      N:=BARSLAST(DATE<>REF(DATE,1))+1;//minute period, the number of k line on the current day.
      //Because the condition is established, the return value of BARSLAST(COND) on the current k line is 0, so "+1" is the k-line number of current day.
      
    • バースインス

      最初の条件は,現在のサイクル数に設定されます.

      BARSSINCE(COND) The first condition is established to the current number of cycles.
      
      Note:
      1、the return value is the first time the COND is established to the current number of cycles
      2、The return value of BARSSINCE (COND) on the current k-line of the condition established for the first time is 0.
      
      example :
      BARSSINCE(CLOSE>OPEN);
      //Statistics of the number of cycles from the K line that satisfies the condition of the first line to the present.
      
    • バースシンセン

      統計 N 期間の最初の条件は,


もっと