4
ध्यान केंद्रित करना
1076
समर्थक

आविष्कारक क्वांटिफाइड मायलैंग डॉक्यूमेंटेशन

में बनाया: 2018-11-30 13:29:33, को अपडेट: 2022-12-09 17:46:10
comments   24
hits   35602

[TOC]

My भाषा एक प्रोग्रामेटिक लेनदेन भाषा है जो मैक भाषा के लिए संगत और उन्नत है। FMZ को मापा गया My भाषा एक सख्त व्याकरणिक जांच के अधीन है, उदाहरण के लिए, जब जावास्क्रिप्ट भाषा कोड में एम्बेडेड भाषा संवर्द्धन का उपयोग किया जाता है, तो%%ऑपरेटर के बाद एक से अधिक रिक्त वर्ण त्रुटि का कारण बनता है.

  • मूल बातें

    • ## अनुबंध

    डिजिटल मुद्रा अनुबंध

    डिजिटल मुद्रा अनुबंध

    this_week     数字货币期货当周合约
    next_week     数字货币期货次周合约
    month         数字货币期货月度合约
    quarter       数字货币期货季度合约
    next_quarter  数字货币期货次季度合约
    third_quarter 数字货币期货第三季度合约
    last_quarter  最后季度合约
    
    
    XBTUSD        BITMEX永续合约
    swap          除BITMEX交易所以外数字货币期货永续合约
    
    
    具体可以参看JavaScript/Python/C++文档的exchange.SetContractType()函数部分
    

    आविष्कारक क्वांटिफाइड मायलैंग डॉक्यूमेंटेशन

    • ## चर

    वेरिएबल कंप्यूटर मेमोरी में खोला गया एक स्थान है जहाँ डेटा को संग्रहीत किया जाता है।

    पहला चर खोलें

    // 将1赋值给变量a
    a:=1;
    

    अस्तित्व麦语言में से数据量सरल अंतर:

    1. एकल-मान डेटाः केवल एक मान, जैसे01’abc’
    2. अनुक्रमिक डेटाः एक एकल-मूल्य डेटा के ढेर से बना डेटा अनुक्रम, जैसेClose(समापन मूल्य), यहाँCloseशामिल हैंnएक चक्र का समापन मूल्य[ 10.1 , 10.2 , 10.3 , 10.4 , 10. 5 ...]

    एक चर प्रकार के पाइप से अलग किया गया

    1. स्ट्रिंग प्रकारः ज़रूरी''पैकेज, स्ट्रिंग प्रकार सीधे उपयोग की अनुमति नहीं है, फ़ंक्शन को देखने के लिए आउटपुट की आवश्यकता होती है
    INFO(CLSOE>OPEN,'OK!');
    
    1. संख्यात्मक प्रकारः पूर्णांक, फ्लोटिंग पॉइंट और अल्पसंख्यक शामिल हैं।
    // 整数
    int:=2;
    
    
    // 小数
    float:=3.1;
    
    1. बुल प्रकार, 1 ((सत्य का प्रतिनिधित्व करता है) या 0 ((झूठा का प्रतिनिधित्व करता है): 1, 0, सच या झूठ। उदाहरण के लिएःA:=1>0;यह कोड निष्पादित होने के बाद,Aतो यह 1 है.
    // 当前周期收盘价大于-999,你会发现,每个周期的返回值都是1,代表true,因为收盘价几乎不可能为负数
    is_true:=Close>-999;
    
    1. सार्वत्रिक चर
    VARIABLE:VALUE1:10;     // 声明一个全局变量,赋值为10,只执行一次。
    

    प्रतिक्रिया के लिए ध्यान देंः

    VARIABLE:NX:0;    // 初始一个全局变量NX为0
    NX..NX+1;         // 每次累加1
    INFO(1,NX);       // 每次打印NX
    

    शुरू मेंINFOयह वाक्य लिखा है101और यह सवाल उठ सकता है कि क्या यह शुरू में नहीं था?0क्या? कारण यह है कि प्रारंभिक K लाइन 100 बार चलती है, और 100 के लाइनों को 100 बार जोड़ा जाता है। फिक्स्ड डिस्क को शुरू में कितने K लाइनों को प्राप्त करने पर निर्भर करता है।

    • ### नामकरण नियम

    अधिकांश प्रणालियों में, चर नामकरण में, सिस्टम फ़ोल्डर का उपयोग करने की अनुमति नहीं दी जाती है, जिसमें कैरेक्टरों को संरक्षित किया जाता है (उदाहरण के लिए, अंतर्निहित चर नाम, फ़ंक्शन नाम) ।CloseC。 इसके अलावा, शुद्ध संख्या या संख्यात्मक शुरुआत की अनुमति नहीं है 。 अंत में लंबे समय तक अनुमति नहीं है, विभिन्न प्रणालियों की लंबाई की सीमा अलग है 。 वास्तव में, आपको मुख्यधारा की प्रणालियों को चीनी भाषा के विश्लेषण की दक्षता के बारे में परेशान करने की ज़रूरत नहीं है, क्योंकि यह चीनी के लिए बहुत अनुकूल है।

     1. चीनी नाम
    
      // 优雅的输出
      五日均线:=MA(C,5);
    
     2. अंग्रेज़ी + रेखांकित
    
      // 输出
      move_avg_5:=MA(C,5);
    

    यदि आप अंग्रेजी पसंद करते हैं, तो कृपया अपने शब्दों को यथासंभव स्पष्ट रूप से लिखें।A1AAABBB… इस तरह के नामकरण विश्वास करो, जब आप अपने सूचक कोड को फिर से पढ़ते हैं, तो आप स्मृति की कमी के कारण बहुत दुखी होंगे इसी तरह, जब आप कोड को दूसरों को निर्यात करते हैं, तो पाठक का मनोदशा टूट जाती है

    तो अब से, अपनी मातृभाषा को गले लगाओ और आशा है कि यह आपके लिए एक शक्तिशाली विश्लेषण और निर्णय लेने वाला उपकरण बन जाएगा।

    • ## डेटा प्रकार

    डेटा प्रकार एक बुनियादी अवधारणा है, और जब हम एक चर को एक निश्चित डेटा मान देते हैं, तो यह चर स्वयं डेटा का प्रकार बन जाता है।

    • 1. मान प्रकारः
      1、2、3、1.1234、2.23456 ...
    
    • 2. स्ट्रिंग प्रकारः
      '1' 、'2' 、'3' ,字符串类型必须用 '' 包裹
    
    • 3. अनुक्रम डेटा:
      一系列单值数据构成的数据集合
    
    • 4. बुल प्रकार (boolean):

    इस्तेमाल किया1प्रतिनिधिtrue0प्रतिनिधिfalse

    उदाहरण

      // 声明一个数值类型的变量
      var_int := 1;
      // 声明一个序列数据的变量
      var_arr := Close;
      // 字符串类型不能单独声明,需要结合函数
      INFO(C>O, '阳线');
    
    • ## ऑपरेटर

    संकेतक कोड के संचालन के लिए उपयोग किया जाता है, जो संकेतक कोड के संचालन में भाग लेने वाले प्रतीकों को सरल शब्दों में कहते हैं।

    • ### मानगणक

    किसी चर को मान देने के लिए

     - 1. `:`
    
    
    `:`, मान को दर्शाता है और इसे चित्र (उपचित्र) में प्रदर्शित करता है।
    
    
    ```
    Close1:Close;      // 将Close赋值给变量Close1,并且输出到图中
    ```
    
     - 2. `:=`
    
    
    `:=`, मान को दर्शाता है, लेकिन इसे चित्रों में प्रदर्शित नहीं किया जाता है (मुख्य चित्र, उप-चित्र, आदि) और न ही यह स्थिति तालिका में प्रदर्शित होता है।
    
    
    ```
    Close2:=Close;     // 将Close赋值给变量Close2
    ```
    
     - 3. `^^`
    
    
    `^^`, दो`^`प्रतीक मान को दर्शाता है, चर को मान देता है और चित्र (मुख्य चित्र) में आउटपुट करता है।
    
    
    ```
    lastPrice^^C;
    ```
    
     - 4. `..`
    
    
    `..`, दो`.`चिह्नों का अर्थ होता है मान, वेरिएबल को मान और वेरिएबल के नाम, संख्यात्मक मान को चित्र में दिखाता है, लेकिन चित्र को चित्र में नहीं दिखाता है।
    
    
    ```
    openPrice..O
    ```
    
    • ### संबंध ऑपरेटर

    संबंध संचालक एक द्विपद संचालक है जिसका उपयोग सशर्त अभिव्यक्ति में किया जाता है। यह दो डेटा के बीच संबंध का निर्णय करने के लिए किया जाता है।

    लौटाता हैः बूल प्रकार, नहींtrue(1)false(0)。

     - 1. से बड़ा`>`
    
    
    ```
    // 将2>1的运算结果赋值给rv1变量,此时rv1=1
    rv1:=2>1;
    ```
    
     - 2. से कम`<`
    
    
    ```
    // 返回false,也就是0,因为2大于1
    rv3:=2<1;
    ```
    
     - 3. अधिक से अधिक`>=`
    
    
    ```
    x:=Close;
    // 将收盘价大于等于10的运算的结果赋值给变量rv2
    // 注意,由于close是一个序列数据,当进行close>=10运算的时候,本质是每个周期都进行运算,所以每个周期都会有一个1、0的返回值
    rv2:=Close>=10;
    ```
    
     - 4. से कम बराबर है`<=`
    
    
    ```
    此处省略
    ```
    
     - 5. बराबर`=`
    
    
    ```
    A:=O=C;     // 判断开盘价是不是等于收盘价。
    ```
    
     - 6. बराबर नहीं है`<>`
    
    
    ```
    1<>2       // 判断1是否不等于2,返回值为1(true)
    ```
    
    • ### लॉजिक ऑपरेटर

    लौटाता हैः बूल प्रकार, नहींtrue(1)false(0)。

     1. तर्क और`&&`उपयोग कर सकते हैं`and`वैकल्पिक रूप से, दोनों पक्षों को एक साथ स्थापित किया जाना चाहिए।
    
      // 判断 cond_a,cond_b,cond_c 是否同时成立
      cond_a:=2>1;
      cond_b:=4>3;
      cond_c:=6>5;
      cond_a && cond_b and cond_c;    // 返回值为1,成立
    
     2. तर्क या`||`उपयोग कर सकते हैं`or`प्रतिस्थापन या लिंक दोनों तरफ, एक तरफ स्थापित किया गया है ((true), और पूरे के रूप में स्थापित किया गया है ((वापस लौटाता है) ।
    
      cond_a:=1>2;
      cond_b:=4>3;
      cond_c:=5>6;
      cond_a || cond_b or cond_c;    // 返回值为1,成立
    
     3. `()`ऑपरेटर, जो पहले कोष्ठक के भीतर अभिव्यक्ति की गणना करता है।
    
      1>2 AND (2>3 OR 3<5)    // 运算结果为假
      1>2 AND 2>3 OR 3<5      // 运算结果为真
    
    • ### अंकगणित ऑपरेटर
      返回值:数值类型
    

    Arithmetic Operator यानी Arithmetic Operator का चिह्न , जो कि एक बुनियादी Arithmetic Operator है, जो चार प्रकार के ऑपरेशनों को संभालता है।

     - **प्लस**
    
    
    ```
    A:=1+1;      // 返回 2
    ```
    
     - **घटाएँ -**
    
    
    ```
    A:=2-1;      // 返回 1
    ```
    
     - **गुणा करना***
    
    
    ```
    A:=2*2;      // 返回 4
    ```
    
     - **बाहर /**
    
    
    ```
    A:=4/2;      // 返回 2
    ```
    
    • समारोह

      • ### समारोह

    प्रोग्रामिंग की दुनिया में, फंक्शन फ़ंक्शन फ़ंक्शन फ़ंक्शन वास्तव में एक फ़ंक्शन को लागू करने के लिए कोड का एक टुकड़ा है। और इसे अन्य कोड के लिए भी बुलाया जा सकता है, सामान्य रूप में निम्नानुसार हैः

      function(param1,param2,...)
    
     - रचना:
    
    
    फ़ंक्शन का नाम ((Argument1,Argument2,...), जिसमें कोई पैरामीटर नहीं हो सकता है या इसमें कई पैरामीटर हो सकते हैं। जैसे`MA(x,n);`प्रतिनिधिमंडल की वापसी`n`चक्र के भीतर`x`सरल चलती औसत`MA()`यह एक फ़ंक्शन है.`x`और`n`फ़ंक्शन के पैरामीटर्स हैं.
    
    
    फ़ंक्शन का उपयोग करते समय हमें फ़ंक्शन की बुनियादी परिभाषाओं को समझने की आवश्यकता होती है, यानी यह कि फ़ंक्शन को कॉल करने पर क्या डेटा प्राप्त किया जा सकता है। आमतौर पर फ़ंक्शन में पैरामीटर होते हैं, और जब हम पैरामीटर पास करते हैं तो हमें यह सुनिश्चित करने की आवश्यकता होती है कि पास किया गया डेटा प्रकार अनुपालन करता है। वर्तमान चरण में अधिकांश आईडीई का कोड संकेत कार्य बहुत ही अधूरा है।`MA(x,n);`यह समझाया गया हैः
    
    
    ```
    返回简单移动平均
    用法:
    AVG:=MA(X,N): X的N日简单移动平均,算法(X1+X2+X3+...+Xn)/N,N支持变量
    ```
    
    
    यह शुरुआती के लिए बहुत ही असुविधाजनक है. अब हम फ़ंक्शंस की पूरी तरह से विश्लेषण करते हैं और फ़ंक्शंस को सीखने और उपयोग करने के लिए एक त्वरित तरीका खोजने की कोशिश करते हैं.
    
    • ### मान लौटाएँ

    फ़ंक्शंस को जल्दी से सीखने के लिए, पहले हमें एक अवधारणा को समझना होगा जिसे हम रिटर्न वैल्यू कहते हैं.वापस आनानाम के अर्थ को ध्यान में रखते हुए, यह “वापसी” है। यदि मान “विशिष्ट संख्यात्मक मान” का प्रतिनिधित्व करता है, तो वापसी मान का अर्थ है कि डेटा प्राप्त किया जा सकता है।

      // 因为后面的代码中会用到,所以用变量 return_value 接收、保存 function()的返回值
      // retrun_value := function(param1,param2);
      // 例如:
      AVG:=MA(C,10);     // AVG即retrun_value,function函数即:MA函数,param1参数:C即收盘价序列数据,param2参数:10。
    
    • ### पैरामीटर

    माध्यमिक फ़ंक्शंस की दूसरी अवधारणा महत्वपूर्ण अवधारणा है कि पैरामीटर, विभिन्न पैरामीटर को अलग-अलग रिटर्न मान प्राप्त कर सकते हैं।

      // 变量ma5接收5日收盘价移动平均值
      ma5:=MA(C,5);
      // 变量ma10接收10日收盘价移动平均值
      ma10:=MA(C,10);
    

    उपरोक्त चरma5ma10की पहली पैरामीटरXदोनोंC(खत्म होने की कीमत)Cयह एक फ़ंक्शन भी है, जो कि {0} को {0} के रूप में दर्शाता है, लेकिन इसमें कोई पैरामीटर नहीं है। दूसरा पैरामीटर 5 और 10 है, जो किMA()फ़ंक्शन, हम बंद कीमतों के कुछ दिनों के लिए एक चलती औसत प्राप्त करना चाहते हैं, पैरामीटर के माध्यम से, फ़ंक्शन का उपयोग करने के लिए अधिक लचीला हो जाता है।

    • कैसे सीखें

      • 1. सबसे पहले, हमें यह समझना होगा कि फ़ंक्शन क्या है, और यह फ़ंक्शन हमें क्या डेटा लौटाता है.
      • 2. और अंत में, हम जानते हैं कि हम किस प्रकार के फ़ंक्शन का उपयोग करते हैं, क्योंकि हम फ़ंक्शन का उपयोग फ़ंक्शन प्राप्त करने के लिए करते हैं
      • 3. और फिर हम जानते हैं कि हम किस प्रकार के डेटा के लिए पैरामीटर है.MA(x,n)यदि आप पैरामीटर नहीं जानते हैंxnऔर यह डेटा प्रकार सही ढंग से रिटर्न प्राप्त नहीं कर सकता.

    उपरोक्त तीन सिद्धांतों का पालन करते हुए निम्नलिखित फ़ंक्शंस का परिचय और उपयोग करें:

    • भाषा में वृद्धि

      • 麦语言औरJavaScriptभाषा मिश्रित प्रोग्रामिंग
      %%
      // 这里面可以调用发明者量化的任何API 
      scope.TEST = function(obj) {
          return obj.val * 100;
      }
      %%
      收盘价:C;
      收盘价放大100倍:TEST(C);
      上一个收盘价放大100倍:TEST(REF(C, 1)); // 鼠标移动到回测的K线上就会提示变量值
    
     - `scope`वस्तु
    
    
    `scope`ऑब्जेक्ट एक विशेषता जोड़ सकते हैं और एक अज्ञात फ़ंक्शन को एक विशेषता के रूप में परिभाषित कर सकते हैं, जिसे मैक भाषा कोड में इस विशेषता के संदर्भ में एक अज्ञात फ़ंक्शन कहा जाता है।
    
     - `scope.getRefs(obj)`समारोह
    
    
    अस्तित्व`JavaScript`कोड ब्लॉक में, कॉल करें`scope.getRefs(obj)`फ़ंक्शन लौटाता है`obj`ऑब्जेक्ट डेटा
    
    
    नीचे`%%  %%`प्रतीकात्मक पैक`JavaScript`कोड में मैक भाषा कोड में प्राप्त`TEST(C)`फ़ंक्शन कॉल के दौरान`C`समापन मूल्य
    `scope.getRefs`फ़ंक्शन इस K-लाइन डेटा के सभी समापन मूल्य लौटाता है.`throw "stop"`तो चर`arr`केवल पहले बार के समापन मूल्य को शामिल करता है. इसे हटाने का प्रयास करें`throw "stop"`और वह कर देगा`JavaScript`कोड के अंत में`return`, और फिर सब कुछ वापस कर देता है।
    
    
    ```
    %%
    scope.TEST = function(obj){
        var arr = scope.getRefs(obj)
        Log("arr:", arr)
        throw "stop"
        return
    }
    %%
    TEST(C);
    ```
    
     - scope.bars
    
    
    अस्तित्व`JavaScript`कोड ब्लॉक में सभी K-लाइनों को एक्सेस करें
    
    
    `TEST`फ़ंक्शन एक संख्यात्मक मान देता है △1 है, और △0 है।
    
    
    ```
    %%
    scope.TEST = function(){
        var bars = scope.bars
        return bars[bars.length - 1].Open > bars[bars.length - 1].Close ? 1 : 0    // 只能返回数值
    }
    %%
    arr:TEST;                                                                      
    ```
    
    
    ```
    # 注意:
    # TEST接收的匿名函数,返回值必须是数值。
    # 如果匿名函数没有参数,在调用TEST的时候直接写VAR:=TEST;写VAR:=TEST();会报错。
    # scope.TEST中的TEST必须是大写。
    ```
    
     - scope.bar
    
    
    अस्तित्व`JavaScript`कोड ब्लॉक में, वर्तमान बार पर जाएँ
    
    
    उच्च और निम्न उपज की कीमतों के औसत की गणना करें।
    
    
    ```
    %%
    scope.TEST = function(){
        var bar = scope.bar
        var ret = (bar.Open + bar.Close + bar.High + bar.Low) / 4
        return ret
    }
    %%
    avg^^TEST;
    ```
    
     - scope.depth
    
    
    बाजार की गहराई के आंकड़ों तक पहुंचें ((अर्डर पतले हैं)) ।
    
    
    ```
    %%
    scope.TEST = function(){
        Log(scope.depth)
        throw "stop"             // 打印一次深度数据后就抛出异常,暂停
    }
    %%
    TEST;
    ```
    
     - scope.symbol
    
    
    वर्तमान ट्रेडिंग जोड़ी नाम स्ट्रिंग प्राप्त करें
    
    
    ```
    %%
    scope.TEST = function(){
        Log(scope.symbol)
        throw "stop"
    }
    %%
    TEST;
    ```
    
     - scope.barPos
    
    
    K लाइन बार की स्थिति प्राप्त करें.
    
    
    ```
    %%
    scope.TEST = function(){
        Log(scope.barPos)
        throw "stop"
    }
    %%
    TEST;
    ```
    
     - scope.get_locals('name')
    
    
    इस फ़ंक्शन का उपयोग मैक भाषा कोड में चर प्राप्त करने के लिए किया जाता है.
    
    
    ```
    V:10;
    %%
    scope.TEST = function(obj){
        return scope.get_locals('V')
    }
    %%
    GET_V:TEST(C);
    ```
    
    
    ```
    # 注意:
    # 如果某个变量,由于周期不足的时候计算不出数据,这个时候在JavaScript代码中调用scope.get_locals函数
    # 获取这个变量时,会报错:line:XX - undefined locals某个变量名undefined
    ```
    
     - scope.canTrade
    
    
    `canTrade`विशेषता चिह्न वर्तमान में व्यापार करने योग्य है या नहीं (क्या वर्तमान बार अंतिम है)
    
    
    उदाहरण के लिए, यह निर्धारित करने के लिए कि जब रणनीति एक व्यापार आदेश के लिए तैयार है, तो स्थिति डेटा प्रिंट करें
    
    
    ```
    %%
    scope.LOGTICKER = function() {
        if(exchange.IO("status") && scope.canTrade){
            var ticker = exchange.GetTicker();
            if(ticker){
                Log("ticker:", ticker);
                return ticker.Last;
            }
        }
    }
    %%
    LASTPRICE..LOGTICKER;
    ```
    
    • उदाहरण के लिएः
      %%
      scope.TEST = function(a){
          if (a.val) {
              throw "stop"
          }    
      }
      %%
      O>C,BK;
      C>O,SP;
      TEST(ISLASTSP);
    

    एक बार स्थिति खोलने के बाद, रणनीति को रोकें।

    • ## बहुआयामी संदर्भ

    सिस्टम स्वचालित रूप से एक उपयुक्त अंडरलाइन K-लाइन अवधि का चयन करता है और इस अंडरलाइन K-लाइन अवधि डेटा का उपयोग सभी संदर्भित K-लाइन डेटा को संश्लेषित करने के लिए करता है ताकि डेटा की सटीकता सुनिश्चित हो सके।

    • उपयोगः#EXPORT 公式名 ... #ENDएक सूत्र बनाना. यदि केवल विभिन्न अवधि के डेटा प्राप्त करने के लिए सूत्र गणना नहीं की जाती है, तो एक खाली सूत्र भी लिखा जा सकता है।

    रिक्त सूत्र है:

      #EXPORT TEST 
      NOP;
      #END           // 结束
    
    • इस्तेमाल कियाः#IMPORT [MIN,周期,公式名] AS 变量值सूत्र उद्धृत करें. सेट की गई अवधि के लिए विभिन्न डेटा प्राप्त करें (जैसे कि समापन मूल्य, उद्घाटन मूल्य, आदि, चर मानों के माध्यम से) ।

    IMPORTआदेश मेंMINइसका मतलब हैमिनट स्तर◦ मैक भाषा, एक आविष्कारक के लिए एक मात्रात्मक मंच,IMPORTआदेश में केवल समर्थनMINस्तर अब गैर-मानक चक्रों का समर्थन करता है, उदाहरण के लिए#IMPORT [MIN,240,TEST] AS VAR240240 मिनट की अवधि के लिए डेटा आयात करें।

    कोड उदाहरण:

      // 本代码演示如何引用不同周期的公式在同一代码里
      // #EXPORT扩展语法,以#END结束标记为一个公式,可以声明多个
      #EXPORT TEST 
      均值1:EMA(C, 20);
      均值2:EMA(C, 10);
      #END // 结束
    
    
      #IMPORT [MIN,15,TEST] AS VAR15 // 引用公式,K线周期用15分钟
      #IMPORT [MIN,30,TEST] AS VAR30 // 引用公式,K线周期用30分钟
      CROSSUP(VAR15.均值1, VAR30.均值1),BPK;
      CROSSDOWN(VAR15.均值2, VAR30.均值2),SPK;
      十五分最高价:VAR15.HIGH;
      三十分最高价:VAR30.HIGH;
      AUTOFILTER;
    
    • बहु-आयामी डेटा संदर्भ के लिए उपयोग किया जाता हैREFLLVHHVउदाहरण निर्देश डेटा संदर्भ के लिए ध्यान दें
      (*backtest
      start: 2021-08-05 00:00:00
      end: 2021-08-05 00:15:00
      period: 1m
      basePeriod: 1m
      exchanges: [{"eid":"Futures_OKCoin","currency":"ETH_USD"}]
      args: [["TradeAmount",100,126961],["ContractType","swap",126961]]
      *)      
    
    
      %%
      scope.PRINTTIME = function() {
          var bars = scope.bars;
          return _D(bars[bars.length - 1].Time);
      }
      %%
      BARTIME:PRINTTIME;      
    
    
      #EXPORT TEST 
      REF1C:REF(C,1);
      REF1L:REF(L,1);
      #END // 结束      
    
    
      #IMPORT [MIN,5,TEST] AS MIN5
      INFO(1, 'C:', C, 'MIN5.REF1C:', MIN5.REF1C, 'REF(MIN5.C, 1):', REF(MIN5.C, 1), '触发BAR时间:', BARTIME, '#FF0000');
      INFO(1, 'L:', L, 'MIN5.REF1L:', MIN5.REF1L, 'REF(MIN5.L, 1):', REF(MIN5.L, 1), '触发BAR时间:', BARTIME, '#32CD32');
      AUTOFILTER;
    

    तुलना करेंMIN5.REF1CऔरREF(MIN5.C, 1)इस तरह के अंतरों को देखा जा सकता है: MIN5.REF1C5 मिनट K लाइन डेटा के वर्तमान समय के लिए दूसरी BAR का समापन मूल्य है। REF(MIN5.C, 1)वर्तमान मॉडल के लिए K-लाइन चक्र है (उपरोक्त कोड में 1 मिनट के लिए सेट किया गया है, अर्थात्period: 1m), 5 मिनट की अवधि के लिए समापन मूल्य जहां BAR वर्तमान क्षण की दूसरी उलटी गिनती है। ये दो परिभाषाएँ भिन्न हैं और आवश्यकता के अनुसार उपयोग की जा सकती हैं।

    • पैटर्न का विवरण

      • ### सिग्नल फ़िल्टरिंग मॉडल

    मॉडल में लिखकरAUTOFILTERफ़ंक्शन को नियंत्रित करने और एक समान सिग्नल फ़िल्टरिंग को लागू करने के लिए, जब कई खोलने वाले सिग्नल शर्तों को पूरा करते हैं, तो पहले सिग्नल को एक वैध सिग्नल के रूप में लिया जाता है, और बाद की k लाइन पर एक ही सिग्नल को फ़िल्टर कर दिया जाएगा।

    फ़िल्टर मॉडल समर्थित निर्देशः BK, BP, BPK, SK, SP, SPK, CLOSEOUT, BK ((5) समर्थित नहीं है।

    उदाहरण के लिए:

      MA1:MA(CLOSE,5);
      MA2:MA(CLOSE,10);
      CROSSUP(C,MA1),BK;
      CROSSUP(MA1,MA2),BK;
      C>BKPRICE+10||C<BKPRICE-5,SP;
      AUTOFILTER;
    
      理解:
      如上范例,没有设置 AUTOFILTER 时,第三行BK 和第四行BK 第五行SP,依次触发,每根K线触发一次信号。开仓后,再到平仓,即重置模型状态。      
      如果设置 AUTOFILTER , 触发BK后,只能触发SP,其它的BK 信号被忽略,每根K线触发一次信号。
    
    • ### बढ़ाव और घटाव मॉडल

    मॉडल में नहीं लिखा गयाAUTOFILTERफ़ंक्शंस, जो लगातार स्टॉक खोलने के संकेत या लगातार स्टॉक को कम करने के संकेत की अनुमति देते हैं, स्टॉक को बढ़ाने या कम करने की अनुमति देते हैं।

    समर्थित निर्देशः BK (N), BP (N), SK (N), SP (N), CLOSEOUT (BPK (N), SP (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);
    

    उपयोगTRADE\_AGAIN एक ही निर्देश को कई संकेतों के साथ चलाया जा सकता है।

      理解:
      以上例子,逐个信号执行,执行后的信号不再触发。平仓后重置模型状态。一个K线触发一次信号。
    
    • ### एक K लाइन एक संकेत का मॉडल

    चाहे k लाइन समाप्त हो जाए, सिग्नल की गणना वास्तविक समय के आदेश पर की जाती है, यानी K लाइन पिछले आदेश को पूरा नहीं करती है; K लाइन के अंत में समीक्षा, यदि स्थिति रखने की दिशा और k लाइन के अंत में सिग्नल की दिशा मेल नहीं खाती है, तो स्थिति को स्वचालित रूप से सिंक्रनाइज़ किया जाएगा।

    उदाहरण के लिए:

      MA1:MA(CLOSE,5);
      MA2:MA(CLOSE,10);
      CROSSUP(MA1,MA2),BPK;    // 5周期均线上穿10周期均线做多。
      CROSSDOWN(MA1,MA2),SPK;  // 5周期均线下穿10周期均线做空。
      AUTOFILTER;
    
    • ### एक K-लाइन के कई संकेतों का मॉडल

    मॉडल का उपयोग करकेmultsigएक K लाइन को नियंत्रित करने के लिए और कई संकेतों को लागू करने के लिए।

    सिग्नल की गणना वास्तविक समय में आदेश के लिए की जाती है, भले ही k लाइन समाप्त हो जाए या नहीं।

    सिग्नल की समीक्षा नहीं की जाती है, सिग्नल गायब होने की कोई स्थिति नहीं है, सिग्नल की दिशा हमेशा स्थिति रखने की दिशा के अनुरूप होती है।

    यदि एक K लाइन में कई सिग्नल शर्तें पूरी होती हैं तो इसे कई बार दोहराया जा सकता है।

      例如:
      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);
    

    MULTSIGएक K लाइन में कई बार अलग-अलग कमांड लाइनों को निष्पादित किया जा सकता है. एक कमांड लाइन केवल एक बार सिग्नल देती है.

      O<C,BK;            // 这些条件在一个K线Bar内,可能都执行,但是每行只出一次信号
      10+O<C,BK;         // 策略加上TRADE_AGAIN(10);可以使每行出多次信号
      20+O<C,BK;
      40+O<C,BK;
      MULTSIG(1,1,10);
    

    उन्होंने कहाः 1। जमा और घटाव मॉडल, एक k लाइन एक संकेत के दो तरीकेः समापन मूल्य आदेश, आदेश मूल्य आदेश, दोनों का समर्थन किया जाता है। 2। जमा और घटाव मॉडल, एक k लाइन को कई बार सिग्नल ऑर्डर करने के लिए भी समर्थन करता है। और फिर हम कहते हैं, “ठीक है।multsigफ़ंक्शन, एक k लाइन पर कई बार जमा करने के लिए, या कई बार जमा करने के लिए।

    • ## निष्पादन मोड

    आविष्कारक क्वांटिफाइड मायलैंग डॉक्यूमेंटेशन

    • ### समापन मूल्य मॉडल

    समापन मूल्य मॉडल का अर्थ है कि वर्तमान BAR समाप्त होने पर मॉडल निष्पादित किया जाता है, और जब निचला BAR शुरू होता है तो ट्रेडों को निष्पादित किया जाता है।

    • ### वास्तविक समय मूल्य मॉडल

    वास्तविक समय मूल्य मॉडल का मतलब है कि प्रत्येक मूल्य परिवर्तन के लिए एक मॉडल निष्पादित किया जाता है, और संकेत के साथ तुरंत व्यापार किया जाता है। वास्तविक समय मूल्य मॉडल पिछले दिन के संकेतों को अनदेखा करता है ((पिछले दिन के संकेतों को तुरंत पहले दिन निष्पादित किया जाता है), वास्तविक समय मूल्य मॉडल केवल वर्तमान स्थिति डेटा को देखता है और निर्णय लेता है कि क्या संकेत ट्रिगर किया गया है।

    • ग्राफ दिखाता है

      • ### मुख्य मानचित्र के अतिरिक्त संकेतक

    ऑपरेटर का उपयोग करें^^, एक चर को एक मूल्य देने के साथ, सेट सूचक मुख्य ग्राफ पर दिखाया गया है.

      MA60^^MA(C, 60);  // 计算参数为60的均线指标
    

    आविष्कारक क्वांटिफाइड मायलैंग डॉक्यूमेंटेशन

    • ### उप-चित्र अतिरिक्त संकेतक

    ऑपरेटर का उपयोग करें:, एक चर के लिए एक मूल्य देने के साथ, सेटिंग सूचक उप-चित्र में दिखाया गया है.

      ATR:MA(MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)),26);    // 给ATR变量赋值,":"符号后为计算ATR的公式
    

    आविष्कारक क्वांटिफाइड मायलैंग डॉक्यूमेंटेशन

    यदि आप मुख्य या उप-चित्रों पर प्रदर्शित नहीं करना चाहते हैं, तो “..” ऑपरेटर का उपयोग करें।

      MA60..MA(C, 60);  // 计算参数为60的均线指标
    

    आविष्कारक क्वांटिफाइड मायलैंग डॉक्यूमेंटेशन

    इस्तेमाल किया जा सकता हैDOTCOLORREDमैक भाषा से परिचित लोगों की आदतों के अनुसार लाइनों के प्रकार, रंग आदि को सेट करें।

    • ## अक्सर पूछे जाने वाले प्रश्नों

    सूचकांक के निर्माण के दौरान आम तौर पर मिलने वाली जानकारीसवाल, आमतौर पर लेखन के दौरान ध्यान देने योग्य है ((निरंतर पूरक)

    • ध्यान अंक;अंतः

    • ध्यान दें कि सिस्टम कीवर्ड को चर के रूप में घोषित नहीं किया जा सकता है।

    • स्ट्रिंग का उपयोग करेंएक उद्धरण,उदाहरण के लिए:'开仓'यह स्ट्रिंग:

    • टिप्पणी

    टिप्पणी चिन्ह

     - `// 注释内容`(इनपुट विधि में अंग्रेजी में टाइप किया जा सकता है), जिसका अर्थ है कि कोड निष्पादन के दौरान संकलित नहीं किया जाता है, यानी निष्पादन नहीं किया जाता है`//`इसके बाद, हम कोड के अर्थ को चिह्नित करने के लिए उपयोग करते हैं, ताकि कोड को फिर से पढ़ने के लिए इसे जल्दी से समझा जा सके और याद किया जा सके।
    
     - `{ 注释内容 }`टिप्पणी
    
    
    ```
    A:=MA(C,10);
    {上一行代码是计算均线。}
    ```
    
     - `(* 注释内容 *)`टिप्पणी
    
    
    ```
    A:=MA(C,10);
    (*上一行代码是计算均线。*)
    ```
    
    • ### इनपुट विधि

    कोड लिखते समय, अक्सर इनपुट विधि में अंग्रेजी स्विच करने के कारण, प्रतीक त्रुटि होती है। सामान्य रूप से निम्नलिखित हैंः:समाप्ति;कॉमा,कोष्ठक()उदाहरण के लिए, इन चीनी और अंग्रेजी में अलग-अलग अक्षरों पर ध्यान दें।

    यदि आप Google, Baidu, या Bing का उपयोग कर रहे हैं, तो आप एक बार क्लिक करकेshiftअंग्रेजी से चीनी में त्वरित स्विचिंग

    • गलत तर्क

      1. कम से कम, कम से कम नहीं, कम से कम नहींः संबंधित संबंध ऑपरेटर>=
      2. अधिकतम, अधिकतम, नहीं अधिकः संबंधित संबंध संचालक<=
    • नीति प्रारंभ समिकरण

    फ्यूचर्स रणनीति में, यदि रणनीति रोबोट शुरू होने से पहले, मैन्युअल रूप से खोला गया है, तो रोबोट शुरू होने पर, वास्तविक स्थिति के रूप में सिंक्रनाइज़ करने के लिए, स्थिति जानकारी का पता लगाया जाएगा। यह एक रणनीति के रूप में इस्तेमाल किया जा सकता है।SPBPCLOSEOUTआदेश जारी।

      %%
      if (!scope.init) {
          var ticker = exchange.GetTicker();
          exchange.Buy(ticker.Sell+10, 1);
          scope.init = true;
      }
      %%
      C>0, CLOSEOUT;
    
    • ### द्वि-दिशात्मक स्थिति का समर्थन नहीं करता

    मैक एक ही अनुबंध का समर्थन नहीं करता है और एक ही समय में कई रिक्त पदों का समर्थन करता है।

  • K-लाइन डेटा संदर्भ

    • ## OPEN

    K रेखाचित्र के लिए शुरुआती मूल्य प्राप्त करें

    शुरुआती कीमत

    फ़ंक्शनः OPEN, संक्षिप्त O

    पैरामीटरः कोई नहीं

    स्पष्टीकरणः “चक्र” के शुरुआती मूल्य पर लौटें

    अनुक्रम डेटा

    OPEN取得K线图的开盘价。
    
    
    注:
    1、可简写为O。
    
    
    例1:
    OO:=O;           //定义OO为开盘价;注意O与0的区别。
    例2:
    NN:=BARSLAST(DATE<>REF(DATE,1));
    OO:=REF(O,NN);   //取的当日的开盘价
    例3:
    MA5:=MA(O,5);    //定义开盘价的5周期均线(O为OPEN简写)。
    
    • ## HIGH

    K रेखाचित्र के लिए उच्चतम मूल्य।

    उच्चतम मूल्य

    फ़ंक्शन: HIGH, संक्षिप्त H

    पैरामीटरः कोई नहीं

    व्याख्याः “चक्र” के उच्चतम मूल्य पर लौटें

    अनुक्रम डेटा

    HIGH取得K线图的最高价。
    
    
    注:
    1、可简写为H。
    
    
    例1:
    HH:=H;         // 定义HH为最高价
    例2:
    HH:=HHV(H,5);  // 取的5个周期内最高价的最大值
    例3:
    REF(H,1);      // 取的前一根K线的最高价
    
    • ## LOW

    K रेखाचित्र के लिए न्यूनतम मूल्य

    सबसे कम कीमत

    फ़ंक्शन: LOW, संक्षिप्त L

    पैरामीटरः कोई नहीं

    व्याख्याः “चक्र” के लिए न्यूनतम मूल्य पर लौटें

    अनुक्रम डेटा

    LOW取得K线图的最低价。
    
    
    注:
    1、可简写为L。
    
    
    例1:
    LL:=L;            // 定义LL为最低价
    例2:
    LL:=LLV(L,5);     // 取得5个周期内最低价的最小值
    例3:
    REF(L,1);         // 取得前一根K线的最低价
    
    • ## CLOSE

    K रेखाचित्र प्राप्त करने के लिए समापन मूल्य

    समापन मूल्य

    फ़ंक्शनः CLOSE, संक्षिप्त नाम C

    पैरामीटरः कोई नहीं

    व्याख्याः “चक्र” के समापन मूल्य पर लौटें

    अनुक्रम डेटा

    CLOSE取得K线图的收盘价
    
    
    注:
    1、当盘中k线没有走完的时候,取得最新价。
    2、可简写为C。
    
    
    例1:
    A:=CLOSE;          //定义变量A为收盘价(盘中k线没有走完的时候A为最新价)
    例2:
    MA5:=MA(C,5);      //定义收盘价的5周期均线(C为CLOSE简写)
    例3:
    A:=REF(C,1);       //取得前一根k线的收盘价
    
    • ## VOL

    K रेखाचित्र के लिए लेनदेन की मात्रा प्राप्त करना

    लेन-देन

    फ़ंक्शन