Tài nguyên đang được tải lên... tải...

MyLanguage Doc

Tác giả:Những nhà phát minh định lượng - những giấc mơ nhỏ, Tạo: 2022-06-30 18:24:06, Cập nhật: 2024-02-06 17:36:19

[TOC]

img

MyLanguage là một ngôn ngữ giao dịch lập trình tương thích và được nâng cao với MyLanguage. MyLanguage của FMZ Quant sẽ trải qua kiểm tra cú pháp nghiêm ngặt. Ví dụ: khi sử dụng nâng cao ngôn ngữ để nhúng mã ngôn ngữ JavaScript, một ký tự không gian bổ sung sau%%người điều hành sẽ gây ra một lỗi được báo cáo.

  • Hướng dẫn cơ bản

    • Hợp đồng

      Hợp đồng tiền điện tử

      Hợp đồng tiền điện tử

      this_week     cryptocurrency futures contract this week
      next_week     cryptocurrency futures contract next week
      month         cryptocurrency futures contract month
      quarter       cryptocurrency futures contract quarter
      next_quarter  cryptocurrency futures contract next quarter
      third_quarter cryptocurrency futures contract third quarter
      last_quarter  contract last quarter
      
      XBTUSD        BITMEX perpetual contract
      swap          cryptocurrency futures perpetual contracts other than BITMEX exchange
      
      For details, please refer to the exchange.SetContractType() function section of the JavaScript/Python/C++ documentation
      

      img

    • Các biến số

      Một biến là một không gian mở trong bộ nhớ máy tính để lưu trữ dữ liệu.

      mở biến số đầu tiên

      // assign 1 to variable a
      a:=1;
      

      TrongMyLanguage, nó dễ dàng để phân biệt vớidata volume:

      1. Dữ liệu đơn giá trị: Chỉ có một giá trị, chẳng hạn như:0, 1, 'abc'.
      2. Dữ liệu chuỗi: một chuỗi dữ liệu bao gồm một tập dữ liệu có giá trị đơn, chẳng hạn như:Close(giá đóng cửa), trong đóClosechứa giá đóng củan periods. [ 10.1 , 10.2 , 10.3 , 10.4 , 10.5 ...]

      Phân biệt với thể biến

      1. Loại chuỗi: nó phải được bọc với ````, loại chuỗi không được phép sử dụng trực tiếp, và nó cần phải được đầu ra vào dạng xem với chức năng.
      INFO(CLSOE>OPEN,'OK!');
      
      1. Các loại giá trị: bao gồm cả số nguyên, số dấu phẩy động (hàng số thập phân).
      // integer
      int:=2;
      
      // decimal
      float:=3.1;
      
      1. Loại Boolean, sử dụng 1 (đối với true) hoặc 0 (đối với false): 1, 0, true hoặc false. Ví dụ:A:=1>0;Sau khi mã này được thực hiện, giá trị củaAlà 1.
      // The closing price of the current period is greater than -999, you will find that the return value of each period is 1, which means true, because the closing price is almost impossible to be negative.
      is_true:=Close>-999;
      
      1. Các biến số toàn cầu
      VARIABLE:VALUE1:10;     // Declare a global variable, assign the value 10, and execute it only once.
      

      Lưu ý rằng khi backtesting:

      VARIABLE:NX:0;    // The initial global variable NX is 0
      NX..NX+1;         // Accumulate 1 each time
      INFO(1,NX);       // Print NX every time
      

      Ban đầu,INFObản in tuyên bố101Có lẽ không phải0ban đầu? Lý do là có 100 đường K ban đầu trong backtest, và 100 đường K đã được chạy qua, đã được tích lũy 100 lần. Giá thực tế phụ thuộc vào số lượng K-line được lấy ban đầu.

      • Quy tắc đặt tên

        Trong hầu hết các hệ thống, tên biến không cho phép sử dụng hệ thống những từ được dành riêng (tên biến tích hợp, tên chức năng).Close, CNgoài ra, các số nguyên hoặc số chính không được phép. Cuối cùng, nó không được phép rất dài, và các hệ thống khác nhau có các hạn chế chiều dài khác nhau. Trong thực tế, bạn không cần phải lo lắng về hiệu quả của hệ thống phân tích tiếng Trung thông thường. Tôi tin rằng MyLanguage rất thân thiện với tiếng Trung. Đối với các lập trình viên có kinh nghiệm, chúng tôi khuyên bạn nên sử dụng hai quy tắc đặt tên sau:

        1. Tên Trung Quốc
        // elegant output
        5-day moving average:=MA(C,5);
        
        1. Tiếng Anh + gạch dưới
        // Output
        move_avg_5:=MA(C,5);
        

        Nếu bạn thích tiếng Anh, hãy cố gắng làm cho ý nghĩa của biến của bạn dễ hiểu nhất có thể.A1, AAA, BBB... tin tôi khi bạn xem lại mã chỉ số của bạn trong một vài ngày, bạn sẽ rất khốn khổ do mất trí nhớ.

        Vì vậy, từ bây giờ, hãy nắm lấy MyLanguage một cách đầy đủ! Tôi hy vọng nó có thể trở thành một công cụ mạnh mẽ cho việc phân tích và ra quyết định của bạn.

    • Loại dữ liệu

      Loại dữ liệu là một khái niệm cơ bản. Khi chúng ta gán một dữ liệu rõ ràng cho một biến bằng văn bản, biến cũng trở thành loại của dữ liệu.

        1. Loại giá trị:
        1.2.3.1.1234.2.23456 ...
        
        1. Loại chuỗi:
        '1' .'2' .'3' ,String types must be wrapped with ''
        
        1. Dữ liệu trình tự:
        A collection of data consisting of a series of single-valued data
        
        1. Loại Boolean:

        Sử dụng1đại diện chotrue0chofalse.

        Ví dụ

        // declare a variable of value type
        var_int := 1;
        // Declare a variable for sequence data
        var_arr := Close;
        // The string type cannot be declared alone, it needs to be combined with the function
        INFO(C>O, 'positive line');
        
    • Người điều hành

      Hoạt động và tính toán được sử dụng để thực hiện mã chỉ số chỉ đơn giản là các biểu tượng tham gia vào hoạt động.

      • Người điều hành giao nhiệm vụ

        để gán một giá trị cho một biến

          1. :

          :, đại diện cho việc gán và đầu ra cho biểu đồ (phần biểu đồ).

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

          :=, đại diện cho việc phân bổ, nhưng không được xuất ra biểu đồ (bản đồ chính, biểu đồ phụ...), cũng không được hiển thị trong bảng thanh trạng thái.

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

          ^^Hai.^biểu tượng đại diện cho việc gán, gán giá trị cho các biến và đầu ra cho biểu đồ (bản đồ chính).

          lastPrice^^C;
          
          1. ..

          .., hai.biểu tượng đại diện cho việc gán, gán giá trị cho biến và hiển thị tên và giá trị biến trong biểu đồ, nhưng không vẽ hình ảnh vào biểu đồ (hình chính, hình phụ...).

          openPrice..O
          
      • Các toán tử liên quan

        Các toán tử quan hệ là các toán tử nhị phân được sử dụng trong các biểu thức có điều kiện để xác định mối quan hệ giữa hai dữ liệu.

        Giá trị trả về: Loại boolean, hoặctrue(1) hoặcfalse(0).

          1. hơn>
          // Assign the operation result of 2>1 to the rv1 variable, at this time rv1=1
          rv1:=2>1;
          
          1. ít hơn<
          // Returns false, which is 0, because 2 is greater than 1
          rv3:=2<1;
          
          1. lớn hơn hoặc bằng>=
          x:=Close;
          // Assign the result of the operation that the closing price is more than or equal to 10 to the variable rv2
          // Remark that since close is a sequence of data, when close>=10 is performed, the operation is performed in each period, so each period will have a return value of 1 and 0
          rv2:=Close>=10;
          
          1. nhỏ hơn hoặc bằng<=
          omitted here
          
          1. bằng=
          A:=O=C;     // Determine whether the opening price is equal to the closing price.
          
          1. Không bằng<>
          1<>2       // To determine whether 1 is not equal to 2, the return value is 1 (true)
          
      • Các toán tử logic

        Giá trị trả về: Loại boolean, hoặctrue(1) hoặcfalse(0).

        1. Điều hợp lý và&&, có thể được thay thế bằngand, và bên trái và bên phải của và kết nối phải được thiết lập cùng một lúc.
        // Determine whether cond_a, cond_b, cond_c are established at the same time
        cond_a:=2>1;
        cond_b:=4>3;
        cond_c:=6>5;
        cond_a && cond_b and cond_c;    // The return value is 1, established
        
        1. Lập lý hay||, bạn có thể sử dụngorđể thay thế hai bên trái và phải của hoặc liên kết, một bên là đúng (đúng), toàn bộ là đúng (trả về giá trị đúng).
        cond_a:=1>2;
        cond_b:=4>3;
        cond_c:=5>6;
        cond_a || cond_b or cond_c;    // The return value is 1, established
        
        1. ()toán tử, biểu thức trong ngoặc cột sẽ được đánh giá đầu tiên.
        1>2 AND (2>3 OR 3<5)    // The result of the operation is false
        1>2 AND 2>3 OR 3<5      // The result of the operation is true
        
      • Các toán tử số học

        Return value: numeric type
        

        Các toán tử số học là các toán tử số học. Nó là một biểu tượng để hoàn thành các hoạt động số học cơ bản (những toán tử số học), đó là một biểu tượng được sử dụng để xử lý bốn hoạt động số học.

        • cộng +

          A:=1+1;      // return 2
          
        • trừ -

          A:=2-1;      // return 1
          
        • *nhân *

          A:=2*2;      // return 4
          
        • chia /

          A:=4/2;      // return 2
          
    • Chức năng

      • Chức năng

        Trong thế giới lập trình, function là một đoạn mã thực hiện một chức năng nhất định.

        function(param1,param2,...)
        
        • Thành phần:

          Tên hàm (parameter1, parameter2,...), có thể không có tham số hoặc có nhiều tham số. Ví dụ:MA(x,n);có nghĩa là trở lại trung bình di chuyển đơn giản củaxtrongnTrong số đó,MA()là một hàm,xnlà các tham số của hàm.

          Khi sử dụng một hàm, chúng ta cần hiểu định nghĩa cơ bản của hàm, tức là dữ liệu có thể được thu được bằng cách gọi hàm. Nói chung, hàm có tham số. Khi chúng ta truyền tham số, chúng ta cần đảm bảo rằng kiểu dữ liệu đến là phù hợp. Ở giai đoạn này, hàm gợi ý mã của hầu hết các IDE là rất không hoàn hảo. Có một kiểu dữ liệu của tham số được đưa ra, điều này mang lại một số khó khăn cho việc sử dụng của chúng ta, vàMA(x,n);được giải thích như sau:

          Return to simple moving average
          Usage:
          AVG:=MA(X,N): N-day simple moving average of X, algorithm (X1+X2+X3+...+Xn)/N, N supports variables
          

          Điều này rất không thân thiện với người mới bắt đầu, nhưng tiếp theo, chúng ta sẽ phân tích chức năng kỹ lưỡng, cố gắng tìm một cách nhanh chóng để học và sử dụng chức năng.

      • Giá trị trả lại

        Để học các hàm nhanh chóng, chúng ta cần hiểu một khái niệm đầu tiên, nó được gọi là return value, Trở lại, như tên của nó cho thấy, có nghĩa là trả lại; Giá trị đại diện cho giá trị cụ thể, sau đó ý nghĩa của giá trị trả lại là: dữ liệu có thể thu được.

        // Because it will be used in the following code, the variable return_value is used 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 is MA function, param1 parameter: C is the closing price sequence data, param2 parameter: 10.
        
      • Các thông số

        Thứ hai, khái niệm quan trọng thứ hai của hàm là tham số, và các giá trị trả về khác nhau có thể được thu được bằng cách truyền vào các tham số khác nhau.

        // The variable ma5 receives the 5-day moving average of closing prices
        ma5:=MA(C,5);
        // The variable ma10 receives the 10-day moving average of closing prices
        ma10:=MA(C,10);
        

        Parameter đầu tiênXcủa các biến trênma5, ma10C(giá đóng cửa), trên thực tế,Ccũng là một hàm (trở lại chuỗi giá đóng từ mở đến hiện tại), nhưng nó không có tham số.MA()Chức năng này trở nên linh hoạt hơn để sử dụng thông qua các tham số.

      • Cách học

          1. Đầu tiên, chúng ta cần hiểu một hàm làm gì, nghĩa là hàm này có thể trả lại dữ liệu gì cho chúng ta.
          1. Điều cuối cùng là hiểu loại giá trị trả về.
          1. Hơn nữa, chúng ta cần phải biết kiểu dữ liệu của các thông sốMA(x,n), nếu bạn không biết kiểu dữ liệu của tham sốx, n, nó sẽ không thể nhận được giá trị trả về chính xác.

        Trong việc giới thiệu và sử dụng chức năng sau đây, hãy tuân theo ba nguyên tắc trên.

    • Cải thiện ngôn ngữ

      • MyLanguageJavaScriptLập trình hỗn hợp ngôn ngữ

        %%
        // This can call any API quantified of FMZ
        scope.TEST = function(obj) {
            return obj.val * 100;
        }
        %%
        Closing price: C;
        Closing price magnified 100 times: TEST(C);
        The last closing price is magnified by 100 times: TEST(REF(C, 1)); // When the mouse moves to the K-line of the backtest, the variable value will be prompted
        
        • scopeđối tượng

          Cácscopeobject có thể thêm thuộc tính và gán chức năng ẩn danh cho thuộc tính, và chức năng ẩn danh được tham chiếu bởi thuộc tính này có thể được gọi trong phần mã của MyLanguage.

        • scope.getRefs(obj)chức năng

          TrongJavaScriptKhóa mã, gọi choscope.getRefs(obj)chức năng để trả lại dữ liệu của thông qua trongobj object.

          CácJavaScriptmã được bọc bằng các mã sau:%% %%sẽ nhận đượcCđã được thông qua trong khiTEST(C)hàm trong mã MyLanguage được gọi là Close price. Cácscope.getRefschức năng sẽ trả về tất cả các giá đóng của dữ liệu K-line này.throw "stop"để ngắt chương trình, biếnarrchỉ chứa giá đóng cửa của thanh đầu tiên. bạn có thể cố gắng xóathrow "stop", nó sẽ thực hiệnreturnvào cuốiJavaScriptmã, và trả về tất cả dữ liệu giá đóng cửa.

          %%
          scope.TEST = function(obj){
              var arr = scope.getRefs(obj)
              Log("arr:", arr)
              throw "stop"
              return
          }
          %%
          TEST(C);
          
        • scope.bars

          Truy cập tất cả các thanh K-line trongJavaScriptKhóa mã.

          CácTESThàm trả về một giá trị. 1 là một đường âm và 0 là một đường dương.

          %%
          scope.TEST = function(){
              var bars = scope.bars
              return bars[bars.length - 1].Open > bars[bars.length - 1].Close ? 1 : 0    // Only numeric values can be returned
          }
          %%
          arr:TEST;                                                                      
          
          # Attention:
          # An anonymous function received by TEST, the return value must be a numeric value.
          # If the anonymous function has no parameters, it will result in an error when calling TEST, writing VAR:=TEST; and writing VAR:=TEST(); directly.
          # TEST in scope.TEST must be uppercase.
          
        • scope.bar

          TrongJavaScriptKhóa mã, truy cập vào thanh hiện tại.

          Tính toán mức giá mở cao và giá đóng thấp.

          %%
          scope.TEST = function(){
              var bar = scope.bar
              var ret = (bar.Open + bar.Close + bar.High + bar.Low) / 4
              return ret
          }
          %%
          avg^^TEST;
          
        • scope.depth

          Truy cập vào dữ liệu sâu thị trường (sổ đơn đặt hàng).

          %%
          scope.TEST = function(){
              Log(scope.depth)
              throw "stop"             // After printing the depth data once, throw an exception and pause
          }
          %%
          TEST;
          
        • scope.symbol

          Nhận chuỗi tên của cặp giao dịch hiện tại.

          %%
          scope.TEST = function(){
              Log(scope.symbol)
              throw "stop"
          }
          %%
          TEST;
          
        • scope.barPos

          Lấy vị trí Bar của đường K.

          %%
          scope.TEST = function(){
              Log(scope.barPos)
              throw "stop"
          }
          %%
          TEST;
          
        • scope.get_locals ((name)

          Chức năng này được sử dụng để lấy các biến trong phần mã của MyLanguage.

          V:10;
          %%
          scope.TEST = function(obj){
              return scope.get_locals('V')
          }
          %%
          GET_V:TEST(C);
          
          # Attention:
          # If a variable cannot calculate the data due to insufficient periods, call the scope.get_locals function in the JavaScript code at this time
          # When getting this variable, an error will be reported: line:XX - undefined locals A variable name is undefined
          
        • scope.canTrade

          CáccanTradeđặc điểm đánh dấu liệu thanh hiện tại có thể được giao dịch (hoặc thanh hiện tại là thanh cuối cùng)

          Ví dụ, đánh giá rằng dữ liệu thị trường được in khi chiến lược ở trạng thái mà lệnh có thể được giao dịch

          %%
          scope.LOGTICKER = function() {
              if(exchange.IO("status") && scope.canTrade){
                  var ticker = exchange.GetTicker();
                  if(ticker){
                      Log("ticker:", ticker);
                      return ticker.Last;
                  }
              }
          }
          %%
          LASTPRICE..LOGTICKER;
          
      • Ví dụ ứng dụng:

        %%
        scope.TEST = function(a){
            if (a.val) {
                throw "stop"
            }    
        }
        %%
        O>C,BK;
        C>O,SP;
        TEST(ISLASTSP);
        

        Ngừng chiến lược sau khi mở và đóng một vị trí một lần.

    • Đề xuất nhiều giai đoạn

      Hệ thống sẽ tự động chọn một giai đoạn K-line cơ bản phù hợp và sử dụng dữ liệu K-line cơ bản này để tổng hợp tất cả các dữ liệu K-line được tham chiếu để đảm bảo độ chính xác của dữ liệu.

      • Sử dụng:#EXPORT formula_name ... #ENDNếu công thức không được tính chỉ để lấy dữ liệu của các giai đoạn khác nhau, bạn cũng có thể viết một công thức trống.

        Một công thức trống là:

        #EXPORT TEST 
        NOP;
        #END           // end
        
      • Sử dụng:#IMPORT [MIN,period,formula name] AS variable valueđể tham khảo một công thức. Nhận các dữ liệu khác nhau của thời gian đặt (giá đóng, giá mở, vv, thu được bằng giá trị biến).

        CácMINtrongIMPORTlệnh có nghĩa làMức phút.MyLanguage của nền tảng FMZ Quant, và chỉMINmức được hỗ trợ trongIMPORTlệnh. Thời gian không chuẩn bây giờ được hỗ trợ. Ví dụ, bạn có thể sử dụng#IMPORT [MIN, 240, TEST] AS VAR240nhập dữ liệu như K-line khoảng thời gian 240 phút (4 giờ).

        Ví dụ mã:

        // This code demonstrates how to reference formulas of different periods in the same code
        // #EXPORT extended grammar, ending with #END marked as a formula, you can declare multiple
        #EXPORT TEST 
        Mean value 1: EMA(C, 20);
        Mean value 2: EMA(C, 10);
        #END // end
        
        #IMPORT [MIN,15,TEST] AS VAR15 // Quoting the formula, the K-line period takes 15 minutes
        #IMPORT [MIN,30,TEST] AS VAR30 // Quoting the formula, the K-line period takes 30 minutes
        CROSSUP(VAR15.Mean value is 1, VAR30.Mean value is 1),BPK;
        CROSSDOWN(VAR15.Mean value is 2, VAR30.Mean value is 2),SPK;
        The highest price in fifteen minutes:VAR15.HIGH;
        The highest price in thirty minutes:VAR30.HIGH;
        AUTOFILTER;
        
      • Cần chú ý khi sử dụngREF, LLV, HHVvà các hướng dẫn khác để tham chiếu dữ liệu khi tham chiếu dữ liệu trong nhiều giai đoạn.

        (*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 // end      
        
        #IMPORT [MIN,5,TEST] AS MIN5
        INFO(1, 'C:', C, 'MIN5.REF1C:', MIN5.REF1C, 'REF(MIN5.C, 1):', REF(MIN5.C, 1), 'Trigger BAR time:', BARTIME, '#FF0000');
        INFO(1, 'L:', L, 'MIN5.REF1L:', MIN5.REF1L, 'REF(MIN5.L, 1):', REF(MIN5.L, 1), 'Trigger BAR time:', BARTIME, '#32CD32');
        AUTOFILTER;
        

        So sánh sự khác biệt giữaMIN5.REF1CREF(MIN5.C, 1), chúng ta có thể tìm thấy:MIN5.REF1Clà giá đóng của giá trước cuối BAR tại thời điểm hiện tại của dữ liệu đường K 5 phút.REF(MIN5.C, 1)là khoảng thời gian K-line của mô hình hiện tại (thời gian backtest code ở trên được thiết lập là 1 phút, tức là ```period: 1m``), giá đóng của khoảng thời gian 5 phút trong đó BAR trước cuối được đặt tại thời điểm hiện tại. Hai định nghĩa này được phân biệt, và chúng có thể được sử dụng khi cần thiết.

    • Mô tả chế độ

      • Mô hình lọc tín hiệu với một lỗ và một mức

        Trong mô hình,AUTOFILTERKhi có nhiều tín hiệu mở đáp ứng các điều kiện, tín hiệu đầu tiên được coi là tín hiệu hợp lệ, và cùng một tín hiệu trên đường K sẽ được lọc ra.

        Hướng dẫn được hỗ trợ bởi mô hình lọc: BK, BP, BPK, SK, SP, SPK, CLOSEOUT, v.v. Hướng dẫn có số lô như BK ((5) không được hỗ trợ.

        Ví dụ:

        MA1:MA(CLOSE,5);
        MA2:MA(CLOSE,10);
        CROSSUP(C,MA1),BK;
        CROSSUP(MA1,MA2),BK;
        C>BKPRICE+10||C<BKPRICE-5,SP;
        AUTOFILTER;
        
        Comprehension:
        As in the above example, when AUTOFILTER is not set, the third row BK, the fourth row BK and the fifth row SP are triggered in sequence, and each K-line triggers a signal once. After opening the position, and closing the position, the model state is reset.      
        If AUTOFILTER is set, after triggering BK, only SP is triggered, other BK signals are ignored, and each K-line triggers a signal once.
        
      • Mô hình tăng và giảm vị trí

        CácAUTOFILTERhàm không được ghi trong mô hình, cho phép tín hiệu mở liên tục hoặc tín hiệu đóng liên tục, có thể tăng và giảm vị trí.

        Hướng dẫn được hỗ trợ: BK ((N), BP ((N), SK ((N), SP ((N), CLOSEOUT, BPK ((N), SPK ((N), các lệnh mở và đóng mà không có kích thước lô không được hỗ trợ. (1) Nhóm hướng dẫn được hỗ trợ. (2) Khi nhiều điều kiện chỉ dẫn được đáp ứng cùng một lúc, các tín hiệu được thực hiện theo thứ tự mà các câu lệnh có điều kiện được viết. Ví dụ:

        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);
        

        Sử dụngTRADE\_AGAINCó thể tạo ra cùng một dòng lệnh, nhiều tín hiệu liên tiếp.

        Comprehension:
        The above example is executed one by one, and the signal after execution is no longer triggered. Reset the model status after closing the position. A K -line triggers a signal once.
        
      • Mô hình với một đường K và một tín hiệu

        Bất kể đường K đã hoàn thành hay không, tín hiệu được tính theo thứ tự thời gian thực, nghĩa là đường K được đặt trước khi lệnh được hoàn thành; đường K được xem xét ở cuối. Nếu hướng vị trí không phù hợp với hướng tín hiệu ở cuối đường K, vị trí sẽ tự động đồng bộ hóa.

        Ví dụ:

        MA1:MA(CLOSE,5);
        MA2:MA(CLOSE,10);
        CROSSUP(MA1,MA2),BPK;    //The 5-period moving average crosses up, and the 10-period moving average goes long.
        CROSSDOWN(MA1,MA2),SPK;  //The 5-period moving average crosses down, and the 10-period moving average goes short.
        AUTOFILTER;
        
      • Một mô hình của nhiều tín hiệu trên một đường K

        Mô hình sử dụngmultsigđể điều khiển và thực hiện nhiều tín hiệu từ một đường K.

        Bất kể đường K có hoàn thành hay không, tín hiệu được tính toán trong thời gian thực.

        Tín hiệu không được xem lại, không có tín hiệu biến mất, và hướng của tín hiệu luôn phù hợp với hướng của vị trí.

        Nếu nhiều điều kiện tín hiệu được đáp ứng trong một đường K, nó có thể được thực hiện nhiều lần.

        For example:
        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);
        

        MULTSIGcó thể thực hiện nhiều dòng lệnh trong một dòng K. Một dòng lệnh chỉ được báo hiệu một lần.

        O<C,BK;            // These conditions may all be executed in a K-line Bar, but only one signal per line
        10+O<C,BK;         // Strategy plus TRADE_AGAIN(10);it can make multiple signals per line
        20+O<C,BK;
        40+O<C,BK;
        MULTSIG(1,1,10);
        

        Phụ lục: 1.Mô hình thêm và giảm các vị trí, hai cách của một tín hiệu và một đường K: đặt lệnh ở giá đóng và đặt lệnh ở giá lệnh, đều được hỗ trợ. 2.Mô hình cộng và giảm vị trí cũng hỗ trợ sắp xếp nhiều tín hiệu từ một đường K. Mô hình của thêm và giảm vị trí, viếtmultsigchức năng để thực hiện nhiều lần thêm hoặc nhiều lần giảm trên một K-đường.

    • Chế độ thực thi

      img

      • Mô hình thanh

        Mô hình Bar đề cập đến mô hình được thực hiện sau khi BAR hiện tại được hoàn thành và giao dịch được thực hiện khi BAR tiếp theo bắt đầu.

      • Mô hình tick

        Mô hình Tick có nghĩa là mô hình được thực hiện một lần cho mỗi biến động giá và giao dịch ngay lập tức khi có tín hiệu. Mô hình Tick bỏ qua tín hiệu của ngày trước (tín hiệu của ngày trước được thực hiện ngay lập tức trong cùng ngày), và mô hình Tick chỉ tập trung vào dữ liệu thị trường hiện tại để xác định liệu tín hiệu có được kích hoạt hay không.

    • Hiển thị biểu đồ

      • Các chỉ số bổ sung cho biểu đồ chính

        Sử dụng toán tử^^, các chỉ số được đặt trên biểu đồ chính trong khi gán giá trị cho các biến.

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

        img

      • Các chỉ số bổ sung cho biểu đồ phụ

        Sử dụng toán tử:, các chỉ số được thiết lập được hiển thị trên biểu đồ phụ trong khi gán giá trị cho các biến.

        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
        

        img

        Nếu bạn không muốn nó được hiển thị trên biểu đồ chính hoặc phụ, hãy sử dụng toán tử ....

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

        Bạn có thể sử dụngDOTCOLORREDđể thiết lập kiểu dòng và màu của dòng, vv, phù hợp với thói quen của người dùng quen thuộc với MyLanguage.

    • Các vấn đề phổ biến

      Hãy giới thiệucác vấn đềthường gặp trong quá trình viết các chỉ số, thường là những điểm cần phải chú ý khi viết (tiếp tục thêm).

      • Lưu ý dấu chấm chấm;cuối cùng.

      • Lưu ý rằng các từ khóa hệ thống không thể được tuyên bố như biến.

      • Lưu ý rằng chuỗi sử dụngtrích dẫn đơn, ví dụ: chuỗi'Open position'.

      • Nhận xét

        Phản hồi

        • // The Remark content(phương pháp đầu vào có thể được gõ bằng cả tiếng Trung và tiếng Anh) có nghĩa là mã không được biên dịch trong quá trình thực thi, tức là nội dung sau khi//Thông thường chúng ta sử dụng nó để đánh dấu ý nghĩa của mã, khi nó thuận tiện để xem lại mã, nó có thể nhanh chóng được hiểu và nhớ lại.

        • { Remark content }Nhận xét đóng cửa.

          A:=MA(C,10);
          {The previous line of code is to calculate the moving average.}
          
        • (* Remark content *)Nhận xét đóng cửa.

          A:=MA(C,10);
          (*The previous line of code is to calculate the moving average.*)
          
      • Nhập

        Khi viết mã, bởi vì phương pháp đầu vào thường được chuyển đổi giữa tiếng Trung và tiếng Anh, dẫn đến lỗi ký hiệu.:, Terminator;, dấu phẩy,, các ngoặc()Các ký tự này trong các trạng thái khác nhau của tiếng Trung và tiếng Anh cần sự chú ý.

        Nếu bạn sử dụng phương thức nhập Sogou, Baidu, hoặc Bing, bạn có thể nhanh chóng chuyển đổi giữa tiếng Trung và tiếng Anh bằng cách nhấnshiftChìa khóa một lần.

      • Logic dễ mắc lỗi

        1. Ít nhất, không ít hơn, không ít hơn: toán tử liên hệ tương ứng>=.
        2. Tối đa: toán tử liên hệ tương ứng<=.
      • Đồng bộ hóa khởi động chiến lược

        Trong chiến lược tương lai, nếu có một vị trí được mở bằng tay trước khi robot chiến lược bắt đầu, khi robot bắt đầu, nó sẽ phát hiện thông tin vị trí và đồng bộ hóa nó với tình trạng vị trí thực tế. Trong chiến lược, bạn có thể sử dụngSP, BP, CLOSEOUTlệnh để đóng vị trí.

        %%
        if (!scope.init) {
            var ticker = exchange.GetTicker();
            exchange.Buy(ticker.Sell+10, 1);
            scope.init = true;
        }
        %%
        C>0, CLOSEOUT;
        
      • Các vị trí hai chiều không được hỗ trợ

        MyLanguage không hỗ trợ cùng một hợp đồng với cả hai vị trí dài và ngắn.

  • Đánh giá dữ liệu đường K

    • Mở

      Nhận giá mở cửa của biểu đồ đường K.

      Giá mở cửa

      Chức năng: OPEN, viết tắt của O

      tham số: không có

      Giải thích: Trả về giá mở của thời gian này

      Dữ liệu trình tự

      OPEN gets the opening price of the K-line chart.
      
      Remark:
      1.It can be abbreviated as O.
      
      Example 1:
      OO:=O;           //Define OO as the opening price; Remark that the difference between O and 0.
      Example 2:
      NN:=BARSLAST(DATE<>REF(DATE,1));
      OO:=REF(O,NN);   //Take the opening price of the day
      Example 3:
      MA5:=MA(O,5);    //Define the 5-period moving average of the opening price (O is short for OPEN).
      
    • cao

      Nhận giá cao nhất trên biểu đồ đường K.

      Giá cao nhất

      Chức năng: HIGH, viết tắt là H

      tham số: không có

      Giải thích: Trả giá cao nhất của thời gian này

      Dữ liệu trình tự

      HIGH achieved the highest price on the K-line chart.
      
      Remark:
      1.It can be abbreviated 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 in 5 periods
      Example 3:
      REF(H,1);      // Take the highest price of the previous K-line
      
    • Mức thấp

      Nhận giá thấp nhất trên biểu đồ K-line.

      Giá thấp nhất

      Chức năng: LOW, viết tắt là L

      tham số: không có

      Giải thích: Trả lại giá thấp nhất của thời gian này

      Dữ liệu trình tự

      LOW gets the lowest price on the K-line chart.
      
      Remark:
      1.It can be abbreviated 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 periods
      Example 3:
      REF(L,1);         // Get the lowest price of the previous K-line
      
    • Gần

      Nhận giá đóng của biểu đồ đường K.

      Giá đóng cửa

      Chức năng: CLOSE, viết tắt là C

      tham số: không có

      Giải thích: Trả về giá đóng cửa của thời gian này

      Dữ liệu trình tự

      CLOSE Get the closing price of the K-line chart
      
      Remarks:
      1.Obtain the latest price when the intraday K-line has not finished.
      2.It can be abbreviated as C.
      
      Example 1:
      A:=CLOSE;          //Define the variable A as the closing price (A is the latest price when the intraday K-line has 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

      Nhận khối lượng giao dịch của biểu đồ đường K.

      Khối lượng giao dịch

      Chức năng: VOL, viết tắt là V

      tham số: không có

      Giải thích: Trả về khối lượng giao dịch của thời gian này

      Dữ liệu trình tự

      VOL obtains the trading volume of the K-line chart.
      
      Remarks:
       It can be abbreviated as V.
      The return value of this function on the current TICK is the cumulative value of all TICK trading volume on that day.
      
      Example 1:
      VV:=V;       // Define VV as the trading volume
      Example 2:
      REF(V,1);    // Indicates the trading volume of the previous period
      Example 3:
      V>=REF(V,1); // The trading volume is greater than the trading volume of the previous period, indicating that the trading volume has increased (V is the abbreviation of VOL)
      
    • OPI

      Lấy tổng vị trí hiện tại trên thị trường tương lai (thỏa thuận).

      OpenInterest:OPI;
      
    • REF

      Đưa ra lời trích dẫn.

      Reference the value of X before N periods.
      
      Remarks:
      1.When N is a valid value, but the current number of K-lines is less than N, returns null;
      2.Return the current X value when N is 0;
      3.Return a null value when N is null.
      4.N can be a variable.
      
      Example 1:
      REF(CLOSE,5);Indicate the closing price of the 5th period before the current period is referenced
      Example 2:
      AA:=IFELSE(BARSBK>=1,REF(C,BARSBK),C);//Take the closing price of the K-line of the latest position opening signal
      // 1)When the BK signal is sent, the bar BARSBK returns null, then the current K-line REF(C, BARSBK) that sends out the BK signal returns null;
      // 2)When the BK signal is sent out, the K-line BARSBK returns null, and if BARSBK>=1 is not satisfied, it is the closing price of the K-line.
      // 3)The K-line BARSBK after the BK signal is sent, returns the number of periods from the current K-line between the K-line for purchasing and opening a position, REF(C,BARSBK)
      Return the closing price of the opening K-line.
      // 4)Example: three K-lines: 1, 2, and 3, 1 K-line is the current K-line of the position opening signal, then returns the closing price of the current K-line, 2, 3
      The K-line returns the closing price of the 1 K-line.
      
    • UNIT

      Lấy đơn vị giao dịch của hợp đồng dữ liệu.

      Get the trading unit of the data contract.
      Usage:
      UNIT takes the trading unit of the loaded data contract.
      

      Tiền mặt tiền điện tử

      Giá trị UNIT là 1.

      Tiền tương lai tiền điện tử

      Giá trị UNIT liên quan đến đồng tiền hợp đồng.

      OKEX futures currency standard contracts: 1 contract for BTC represents $100, 1 contract for other currencies represents $10
      
    • MINPRICE

      Giá thay đổi tối thiểu của hợp đồng dữ liệu.

      Take the minimum variation price of the data contract.
      Usage:
      MINPRICE; Take the minimum variation price of the loaded data contract.
      
    • MINPRICE1

      Giá biến đổi tối thiểu của hợp đồng giao dịch.

      Take the minimum variation price of a trading contract.
      Usage:
      MINPRICE1; Take the minimum variation price of a trading contract.
      
  • Chức năng thời gian

    • BARPOS

      Lấy vị trí của K-line.

      BARPOS, Returns the number of periods from the first K-line to the current one.
      
      Remarks:
      1.BARPOS returns the number of locally available K-line, counting from the data that exists on the local machine.
      2.The return value of the first K-line existing in this machine is 1.
      
      Example 1:LLV(L,BARPOS);        // Find the minimum value of locally available data.
      
      Example 2:IFELSE(BARPOS=1,H,0); // The current K-line is the first K-line that already exists in this machine, and it takes the highest value, otherwise it takes 0.
      
    • Daybarpos

      DAYBARPOS K-line BAR hiện tại là K-line BAR của ngày.

    • Thời gian

      Giá trị thời gian là số phút.

      1, 3, 5, 15, 30, 60, 1440
      
    • Ngày

      NgàyChức năng DATE, Nhận năm, tháng và ngày của giai đoạn kể từ năm 1900.

      Example 1:
      AA..DATE;                  // The value of AA at the time of testing is 220218, which means February 18, 2022
      
    • Thời gian

      Đã đến lúc bắt đầu K-line.

      TIME, the time of taking the K-line.
      
      Remarks:
      1.The function returns in real time in the intraday, and returns the starting time of the K-line after the K-line is completed.
      2.This function returns the exchange data reception time, which is the exchange time.
      3.The TIME function returns a six-digit form when used on a second period, namely: HHMMSS, and displays a four-digit form on other periods, namely: HHMM.
      4.The TIME function can only be loaded in periods less than the daily period, and the return value of the function is always 1500 in the daily period and periods above the daily period.
      5. It requires attention when use the TIME function to close a position at the end of the day
      (1).It is recommended to set the time for closing positions at the end of the market to the time that can actually be obtained from the return value of the K-line (for example: the return time of the last K-line in the 5-minute period of the thread index is 1455, and the closing time at the end of the market is set to TIME>=1458, CLOSEOUT; the signal of closing the position at the end of the market cannot appear in the effect test)
      (2).If the TIME function is used as the condition for closing the position at the end of the day, it is recommended that the opening conditions should also have a corresponding time limit (for example, if the condition for closing the position at the end of the day is set to TIME>=1458, CLOSEOUT; then the condition TIME needs to be added to the corresponding opening conditions. <1458; avoid re-opening after closing)
      
      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;
      
    • Năm

      Year.

      YEAR, year of acquisition.
      
      Remark:
      The value range of YEAR is 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, lowest price, opening price, and closing price of the previous year
      Example 2:
      NN:=IFELSE(YEAR>=2000 AND MONTH>=1,0,1);
      
    • Tháng

      Lấy tháng.

      MONTH, returns the month of a period.
      
      Remark:
      The value range of MONTH is 1-12.
      
      Example 1:
      VALUEWHEN(MONTH=3&&DAY=1,C);                // Take its closing price when the K-line date is March 1
      Example 2:
      C>=VALUEWHEN(MONTH<REF(MONTH,1),O),SP;
      
    • Ngày

      Nhận số ngày trong một khoảng thời gian

      DAY, returns the number of days in a period.
      
      Remark:
      The value range of DAY is 1-31.
      
      Example 1:
      DAY=3&&TIME=0915,BK;                      // 3 days from the same day, at 9:15, buy it
      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
      
    • Giờ

      Hour.

      HOUR, returns the number of hours in a period.
      
      Remark:
      The value range of HOUR is 0-23
      
      Example 1:
      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 phút

      Minute.

      MINUTE, returns the number of minutes in a period.
      
      Remarks:
      1: The value range of MINUTE is 0-59
      2: This function can only be loaded in the minute period, and returns the number of minutes when the K-line starts.
      Example 1:
      MINUTE=0;                                 // The return value of the minute K-line at the hour is 1, and the return value of the other K-lines is 0
      Example 2:
      TIME>1400&&MINUTE=50,SP;                   // Sell and close the position at 14:50
      
    • Ngày trong tuần

      Nhận số của tuần.

      WEEKDAY, get the number of the week.
      
      Remark:
      1: The value range of WEEKDAY is 0-6. (Sunday ~ Saturday)
      
      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;                               // Automatically close positions at the end of the monthly delivery day
      Example 2:
      C>VALUEWHEN(WEEKDAY<REF(WEEKDAY,1),O)+10,BK;
      AUTOFILTER;
      
  • Chức năng phán đoán logic

    • BARSTATUS

      Trả về trạng thái vị trí cho khoảng thời gian hiện tại.

      BARSTATUS returns the position status for the current period.
      
      Remark:
      The function returns 1 to indicate that the current period is the first period, returns 2 to indicate that it is the last period, and returns 0 to indicate that the current period is in the middle.
      
      Example:
      A:=IFELSE(BARSTATUS=1,H,0);              // If the current K-line is the first period, variable A returns the highest value of the K-line, otherwise it takes 0
      
    • Giữa

      Between.

      BETWEEN(X,Y,Z) indicates whether X is between Y and Z, returns 1 (Yes) if established, otherwise returns 0 (No).
      
      Remark:
      1.The function returns 1(Yse) if X=Y, X=Z, or X=Y and Y=Z.
      
      Example 1:
      BETWEEN(CLOSE,MA5,MA10);                // It indicates that the closing price is between the 5-day moving average and the 10-day moving average
      
    • Barslastcount

      BARSLASTCOUNT(COND) đếm số thời gian liên tiếp đáp ứng điều kiện, đếm về phía trước từ thời kỳ hiện tại.

      Remark:
      1. The return value is the number of consecutive non zero periods calculated from the current period
      2. the first time the condition is established when the return value of the current K-line BARSLASTCOUNT(COND) is 1
      
      Example:
      BARSLASTCOUNT(CLOSE>OPEN);
      //Calculate the number of consecutive positive periods within the current K-line
      
    • Chữ chéo

      Cross function.

      CROSS(A,B) means that A crosses B from bottom to top, and returns 1 (Yes) if established, otherwise returns 0 (No)
      
      Remark:
      1.To meet the conditions for crossing, the previous k-line must satisfy A<=B, and when the current K-line satisfies A>B, it is considered to be crossing.
      
      Example 1:
      CROSS(CLOSE,MA(CLOSE,5));              // Indicates that the closing line crosses the 5-period moving average from below
      
    • Đọc qua

      Crossdown

      CROSSDOWN(A,B): indicates that when A passes through B from top to bottom, it returns 1 (Yes) if it is established, otherwise it returns 0 (No)
      
      Remark:
      1.CROSSDOWN(A,B) is equivalent to CROSS(B,A), and CROSSDOWN(A,B) is easier to understand
      
      Example 1:
      MA5:=MA(C,5);
      MA10:=MA(C,10);
      CROSSDOWN(MA5,MA10),SK;               // MA5 crosses down MA10 to sell and open a position
      // CROSSDOWN(MA5,MA10),SK; Same meaning as CROSSDOWN(MA5,MA10)=1,SK;
      
    • CROSSUP

      Crossup.

      CROSSUP(A,B) means that when A crosses B from the bottom up, it returns 1 (Yes) if it is established, otherwise it returns 0 (No)
      
      Remark:
      1.CROSSUP(A,B) is equivalent to CROSS(A,B), and CROSSUP(A,B) is easier to understand.
      
      Example 1:
      MA5:=MA(C,5);
      MA10:=MA(C,10);
      CROSSUP(MA5,MA10),BK;                 // MA5 crosses MA10, buy open positions
      // CROSSUP(MA5,MA10),BK;与CROSSUP(MA5,MA10)=1,BK; express the same meaning
      
    • Tất cả

      Xác định xem nó có liên tục được thỏa mãn hay không.

      EVERY(COND,N), Determine whether the COND condition is always satisfied within N periods. The return value of the function is 1 if it is satisfied, and 0 if it is not satisfied.
      
      Remarks:
      1.N contains the current K-line.
      2.If N is a valid value, but there are not so many K-lines in front, or N is a null value, it means that the condition is not satisfied, and the function returns a value of 0.
      3.N can be a variable.
      
      Example 1:
      EVERY(CLOSE>OPEN,5);                // Indicates that it has been a positive line for 5 periods
      Example 2:
      MA5:=MA(C,5);                       // Define a 5-period moving average
      MA10:=MA(C,10);                     // Define a 10-period moving average
      EVERY(MA5>MA10,4),BK;               // If MA5 is greater than MA10 within 4 periods, then buy the open position
      // EVERY(MA5>MA10,4),BK; has the same meaning as EVERY(MA5>MA10,4)=1,BK;
      
    • Có tồn tại

      Xác định xem có sự hài lòng không.

      EXIST(COND, N) judges whether there is a condition that satisfies COND within N periods.
      
      Remarks:
      1.N contains the current K-line.
      2.N can be a variable.
      3.If N is a valid value, but there are not so many K-lines in front, it is calculated according to the actual number of periods.
      
      Example 1:
      EXIST(CLOSE>REF(HIGH,1),10);     // Indicates whether there is a closing price greater than the highest price of the previous period in 10 periods, returns 1 if it exists, and returns 0 if it does not exist
      Example 2:
      N:=BARSLAST(DATE<>REF(DATE,1))+1;
      EXIST(C>MA(C,5),N);              // Indicates whether there is a K-line that satisfies the closing price greater than the 5-period moving average on the day, returns 1 if it exists, returns 0 if it does not exist
      
    • Nếu

      Chức năng điều kiện.

      IF(COND,A,B)Returns A if the COND condition is true, otherwise returns B.
      
      Remarks:
      1.COND is a judgment condition; A and B can be conditions or values.
      2.This function supports the variable circular reference to the previous period's own variable, that is, supports the following writing Y: IF(CON,X,REF(Y,1)).
      Example 1:
      IF(ISUP,H,L);                   // The K-line is the positive line, the highest price is taken, otherwise the lowest price is taken
      Example 2:
      A:=IF(MA5>MA10,CROSS(DIFF,DEA),IF(CROSS(D,K),2,0));     // When MA5>MA10, check whether it satisfies the DIFF and pass through DEA, otherwise (MA5 is not greater than MA10), when K and D are dead fork, let A be assigned a value of 2, if none of the above conditions are met, A is assigned a value of 0
      A=1,BPK;                                                // When MA5>MA10, the condition for opening a long position is to cross DEA above the DIFF
      A=2,SPK;                                                // When MA5 is not greater than MA10, use K and D dead forks as the conditions for opening short positions
      
    • IFELSE

      Chức năng điều kiện.

      IFELSE(COND,A,B) Returns A if the COND condition is true, otherwise returns B.
      
      Remarks:
      1.COND is a judgment condition; A and B can be conditions or values.
      2.This function supports variable circular reference to the previous period's own variable, that is, supports the following writing Y: IFELSE(CON,X,REF(Y,1));
      Example 1:
      IFELSE(ISUP,H,L);                                             // The K-line is the positive line, the highest price is taken, otherwise the lowest price is taken
      Example 2:
      A:=IFELSE(MA5>MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0));   // When MA5>MA10, check whether it satisfies the DIFF and pass through DEA, otherwise (MA5 is not greater than MA10), when K and D are dead fork, let A be assigned a value of 2, if none of the above conditions are met, A is assigned a value of 0
      A=1,BPK;                                                      // When MA5>MA10, the condition for opening a long position is to cross DEA above the DIFF
      A=2,SPK;                                                      // When MA5 is not greater than MA10, use K and D dead forks as the conditio

Có liên quan

Thêm nữa