개발자 양적 My Language (Mylang) 문서

저자:작은 꿈, 2018-11-30 13:29:33, 업데이트: 2022-12-09 17:46:10

[TOC]

My 언어는 메어 언어에 호환되고 강화된 프로그래밍 거래 언어이다. FMZ 양적 My 언어는 엄격한 문법 검사를 수행합니다. 예를 들어, 언어 강화를 사용하여 JavaScript 언어 코드를 내장할 때,%%오퍼레이터 다음으로 한 개의 공백 문자를 더하면 오류가 발생합니다.

  • 기본 설명

    • 계약

      디지털 통화 계약

      디지털 통화 계약

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

      img

    • 변수

      변수는 컴퓨터의 메모리에서 데이터를 저장하기 위해 개방된 공간, 간단히 말해 데이터를 저장하는 공간이다.

      첫 번째 변수를 열고

      // 将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, true 또는 false를 사용합니다. 예를 들어: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개의 K줄을 지나 100번 더하기 때문입니다. 실제 디스크는 초기 K 라인 수에 따라 결정됩니다.

      • 이름 지정 규칙

        대부분의 시스템에서 변수 명칭은 시스템 을 사용하는 것을 허용하지 않습니다.CloseC또한 순수 숫자 또는 숫자 시작은 허용되지 않습니다. 끝은 매우 길게 허용되지 않으며, 다른 시스템 길이 제한이 다릅니다. 사실 당신은 중국어 처리 효율성에 대한 주류 시스템의 혼란을 겪을 필요가 없습니다. 오리 언어는 중국어에 매우 우호적이라고 믿습니다.

        1. 중국어 이름
        // 优雅的输出
        五日均线:=MA(C,5);
        
        1. 영어+ 아래 줄기
        // 输出
        move_avg_5:=MA(C,5);
        

        만약 여러분이 영어를 선호한다면, 가능한 한 여러분의 변수의 의미를 이해하도록 하세요.A1AAABBB...이런 이름 붙이는 방법. 나는 당신이 당신의 지표 코드를 다시 검토 할 때 기억 부족으로 인해 고통받을 것이라고 믿습니다. 또한 당신이 다른 사람들에게 코드를 내보낼 때, 독자의 정신은 무너질 것입니다.

        이제부터, 오리언어를 최대한 받아들이세요. 여러분의 분석과 의사결정에 강력한 도구가 되길 바랍니다.

    • 데이터 타입

      데이터 타입은 기본 개념이며, 프로그래밍에서 우리가 변수에 명확한 데이터 값을 부여할 때 변수는 데이터 자체의 타입이 된다.

        1. 숫자의 종류:
        1、2、3、1.1234、2.23456 ...
        
        1. 문자열 유형 (str):
        '1' 、'2' 、'3' ,字符串类型必须用 '' 包裹
        
        1. 이 문서는 다른 문서를 참조합니다.
        一系列单值数据构成的数据集合
        
        1. 형 (boolean):

        사용1대표true0대표false

        예를 들어

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

      지표 코드를 실행하는 연산, 계산, 간단히 말하면 연산에 참여하는 기호이다.

      • 할당 연산자

        변수에 값을 부여하기 위해 사용되죠

          1. :

          :, 값을 나타내고 도표 (副图) 로 출력합니다.

          Close1:Close;      // 将Close赋值给变量Close1,并且输出到图中
          
          1. :=

          :=,는 값을 나타냅니다. 하지만 그래프 (주면, 부면...) 에 출력되지 않습니다. 상태 테이블에도 표시되지 않습니다.

          Close2:=Close;     // 将Close赋值给变量Close2
          
          1. ^^

          ^^2개^기호는 값을 나타내고, 변수에 값을 부여하고, 도표 (主图) 에 출력된다.

          lastPrice^^C;
          
          1. ..

          ..2개.기호는 값을 나타내고, 변수에 부여하고 변수 이름, 숫자를 차트에 표시하지만 차트에 그림을 그리지 않습니다.

          openPrice..O
          
      • 관계 연산자

        관계 연산자는 조건 표현식에서 사용되는 이중 연산자이다. 두 데이터 사이의 관계를 판단하기 위해 쓰인다.

        귀환 값: 형, 아니true1은false(0)。

          1. 더 큰>
          // 将2>1的运算结果赋值给rv1变量,此时rv1=1
          rv1:=2>1;
          
          1. 이보다 작습니다.<
          // 返回false,也就是0,因为2大于1
          rv3:=2<1;
          
          1. 더 큰 것은>=
          x:=Close;
          // 将收盘价大于等于10的运算的结果赋值给变量rv2
          // 注意,由于close是一个序列数据,当进行close>=10运算的时候,本质是每个周期都进行运算,所以每个周期都会有一个1、0的返回值
          rv2:=Close>=10;
          
          1. 이 값은<=
          此处省略
          
          1. 이 값은=
          A:=O=C;     // 判断开盘价是不是等于收盘价。
          
          1. 이 값은<>
          1<>2       // 判断1是否不等于2,返回值为1(true)
          
      • 논리 연산자

        귀환 값: 형, 아니true1은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,成立
        
        1. 논리 또는||사용 가능or대체 또는 링크의 좌우 양쪽, 한쪽은 true, 전체는 true를 반환한다.
        cond_a:=1>2;
        cond_b:=4>3;
        cond_c:=5>6;
        cond_a || cond_b or cond_c;    // 返回值为1,成立
        
        1. ()연산자, 연산 시 괄호 안의 표현식을 먼저 계산한다.
        1>2 AND (2>3 OR 3<5)    // 运算结果为假
        1>2 AND 2>3 OR 3<5      // 运算结果为真
        
      • 연산 연산자

        返回值:数值类型
        

        수학적 연산자 또는 수학적 연산자 기호는 기본적인 수학적 연산을 완료하는 기호이다. 즉, 4개의 연산을 처리하는 기호이다.

        • 더하기 +

          A:=1+1;      // 返回 2
          
        • 빼기 -

          A:=2-1;      // 返回 1
          
        • 곱하기 *

          A:=2*2;      // 返回 4
          
        • / 빼고

          A:=4/2;      // 返回 2
          
    • 함수

      • 함수

        프로그래밍 세계에서, 함수 은 실제로 어떤 기능을 구현하는 코드 조각이다. 그리고 다른 코드들을 호출할 수 있다. 일반적인 형태는 다음과 같다:

        function(param1,param2,...)
        
        • 이 글은

          함수 이름 (변수 1, 변수 2,...) 는 변수가 없거나 여러 변수가 있을 수 있다. 예를 들어MA(x,n);대표가 돌아왔다n주기에x그 중에서도,MA()이 함수들은x그리고n이 함수의 변수는

          함수를 사용할 때 우리는 함수의 기본 정의, 즉 함수를 호출할 때 어떤 데이터를 얻을 수 있는지 알아야 합니다. 일반적으로 함수에는 매개 변수가 있습니다. 우리가 매개 변수를 입력할 때 입력되는 데이터 유형이 일치하는지 확인해야합니다. 현재 단계의 대부분의 IDE의 코드 제안 기능은 매우 불완전합니다.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또한 함수 (개시부터 현재까지의 종료 가격 순서를 반환하는 함수) 는 변수가 없습니다. 두 번째 변수 5와 10은MA()함수, 우리는 종료 가격의 몇 일 이동 평균을 얻으려면, 매개 변수를 통해 함수 사용이 더 유연하게 됩니다.

      • 어떻게 배울 것인가

          1. 먼저, 함수의 역할을 이해해야 합니다. 즉, 함수가 우리에게 어떤 데이터를 반환할 수 있는지 이해해야 합니다.
          1. 마지막으로, 반환값의 유형을 이해해야 합니다. 결국 우리는 함수를 사용하여 반환값을 얻습니다.
          1. 그리고 두 번째로, 우리는 변수의 데이터 타입을 알아야 합니다.MA(x,n)만약 당신이 그 값을 모르면xn또한, 이 데이터 타입의 값은 제대로 반환되지 않습니다.

        다음의 함수의 소개, 사용, 위의 3 가지 원칙을 따르십시오.

    • 언어 증강

      • 麦语言그리고JavaScript언어 혼합 프로그래밍

        %%
        // 这里面可以调用发明者量化的任何API 
        scope.TEST = function(obj) {
            return obj.val * 100;
        }
        %%
        收盘价:C;
        收盘价放大100倍:TEST(C);
        上一个收盘价放大100倍:TEST(REF(C, 1)); // 鼠标移动到回测的K线上就会提示变量值
        
        • scope객체

          scope객체는 속성을 추가하고 속성에 익명 함수를 부여할 수 있으며, MAC 코드 부분에서는 이 속성을 참조하는 익명 함수를 호출할 수 있다.

        • 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 (명)

          이 함수는 MAC 언어 코드 부분에서 변수를 얻는 데 사용됩니다.

          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속성 표시가 현재 거래 가능한지 (현재의 Bar가 마지막이 아닌지)

          예를 들어, 전략이 거래 가능한 상태에서 시장 데이터를 인쇄할 때 판단합니다.

          %%
          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분 주기 (~4시간) K 라인 등의 데이터를 입력합니다.

        코드 예제:

        // 本代码演示如何引用不同周期的公式在同一代码里
        // #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), 현재 시점의 역수인 두 번째 BAR가 있는 5분 주기의 종결 가격이다. 이 두 가지 정의는 서로 다르며 필요에 따라 사용할 수 있습니다.

    • 모델 설명

      • 평평한 신호 필터링 모델

        모형에 입력하여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 (SPK) ᆞN (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선 여러 신호의 모델

        모형을 사용함으로써multsigK선에서 여러 개의 신호를 제어하고 구현하기 위해.

        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줄에 여러 번 부가 또는 여러 번 부하를 구현합니다.

    • 실행 모드

      img

      • 매각 가격 모델

        클로시 가격 모델은 현재 BAR가 끝나기 전까지 모델을 실행하고, 하위 바르가 시작될 때 거래를 실행하는 것을 의미합니다.

      • 실시간 가격 모델

        실시간 가격 모델은 가격 변동에 따라 하나의 모델을 실행하고 신호가 있으면 즉시 거래하는 것을 의미합니다. 실시간 가격 모델은 전날의 신호를 무시 (전날의 신호는 전날 즉시 실행) 하고, 실시간 가격 모델은 현재 시장 데이터만을 보고 신호를 유발하는지 판단한다.

    • 그래프

      • 주요 추가 지표

        연산자 사용^^, 변수 부여와 동시에, 설정 지표는 주식으로 표시됩니다.

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

        img

      • 부사진 추가 지표

        연산자 사용:, 변수에 부여하는 동시에 지표 설정은 부사진에 표시됩니다.

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

        img

        만약 당신이 주관 또는 서디그램에 표시되는 것을 원하지 않는다면, ... 를 사용하십시오.

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

        img

        사용할 수 있습니다DOTCOLORRED라인의 형태, 색상 등을 설정하는 것은 마카어를 잘 아는 사용자들의 습관에 맞습니다.

    • 질문

      지표 작성 과정에서 흔히 발생하는문제이 글은 보통 글쓰기 과정에서 주의가 필요한 부분 (지속적인 보충) 이다.

      • 점수를 보세요.;이 글의 내용은

      • 시스템 키워드는 변수 선언으로 사용할 수 없습니다.

      • 문자열 사용에 주의하세요.단절자예를 들어:'开仓'이 문자열은

      • 참고자료

        참고자료

        • // 注释内容(입수에는 영어 입력도 가능합니다) 실행 중에 코드가 컴파일되지 않음을 나타냅니다.//다음의 내용은 일반적으로 우리가 코드의 의미를 표시하기 위해 사용하는 것입니다. 코드를 재검토 할 때 쉽게 이해하고 기억할 수 있습니다.

        • { 注释内容 }이 글의 주제는

          A:=MA(C,10);
          {上一行代码是计算均线。}
          
        • (* 注释内容 *)이 글의 주제는

          A:=MA(C,10);
          (*上一行代码是计算均线。*)
          
      • 입력 방법

        코드 작성 시, 입력 방식의 영어 전환으로 인해 기호 오류가 종종 발생합니다. 다음과 같은 몇 가지 유형이 일반적입니다.:끝자락;, 코마,괄호()이 문자는 중국어와 영어에 따라 다른 문자로 표시됩니다.

        검색어, 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선 데이터 참조

    • 오픈

      K선 그래프의 개시 가격을 얻습니다.

      개시 가격

      함수: OPEN, 약자 O

      변수: 0

      설명: "이 사이클"의 시작 가격으로 돌아가

      일련 데이터

      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简写)。
      
    • 높은

      가장 높은 가격으로 K 라인 그래프를 얻습니다.

      최고 가격

      함수: HIGH, 줄여서 H

      변수: 0

      설명: 이 사이클의 최고 가격을 반환합니다.

      일련 데이터

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

      K선 그래프의 최저 가격을 얻습니다.

      가장 저렴한 가격

      함수: LOW, 줄여서 L

      변수: 0

      설명: "이 주기"의 최저값을 반환합니다.

      일련 데이터

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

      K 라인 그래프의 종료 가격을 얻습니다.

      종결 가격

      함수: CLOSE, C로 줄여서

      변수: 0

      설명: "이 사이클"의 종료 가격으로 돌아가

      일련 데이터

      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줄의 도면을 얻을 수 있는 거래량.

      거래량

      함수: VOL, 약자 V

      변수: 0

      설명: 이 사이클의 거래량을 반환합니다

      일련 데이터

      VOL取得K线图的成交量。
      
      注:
      可简写为V。
      该函数在当根TICK上的返回值为当天所有TICK成交量的累计值。
      
      例1:
      VV:=V;       // 定义VV为成交量
      例2:
      REF(V,1);    // 表示前一个周期的成交量
      例3:
      V>=REF(V,1); // 成交量大于前一个周期的成交量,表示成交量增加(V为VOL的简写)
      
    • OPI

      현재 선물 (계약) 시장의 총 보유량.

      OpenInterest:OPI;
      
    • REF

      이 글은 이쪽에서 인용됩니다.

      引用X在N个周期前的值。
      
      注:
      1、当N为有效值,但当前的k线数不足N根,返回空值;
      2、N为0时返回当前X值;
      3、N为空值时返回空值。
      4、N可以为变量
      
      例1:
      REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价
      例2:
      AA:=IFELSE(BARSBK>=1,REF(C,BARSBK),C);//取最近一次买开仓信号K线的收盘价
      // 1)发出BK信号的当根k线BARSBK返回空值,则发出BK信号的当根k线REF(C,BARSBK)返回
      空值;
      // 2)发出BK信号的当根k线BARSBK返回空值,不满足BARSBK>=1,则当根k线的收盘价。
      // 3)发出BK信号之后的k线BARSBK返回买开仓的K线距离当前K线的周期数,REF(C,BARSBK)
      返回开仓k线的收盘价。
      // 4)例:1、2、3 三根k线,1 K线为开仓信号的当根k线,则返回当根k线的收盘价,2、3
      K线返回 1 K线的收盘价。
      
    • UNIT

      데이터 계약을 받은 거래소.

      取数据合约的交易单位。
      用法:
      UNIT 取加载数据合约的交易单位。
      

      디지털 화폐 현금

      UNIT 값은 1이다.

      디지털 화폐 선물

      UNIT 값은 계약 통화와 관련이 있습니다.

      OKEX期货币本位合约:BTC合约1张代表100美元,其它币种的1张合约代表10美元
      
    • MINPRICE

      데이터 계약의 최소 변동 가격.

      取数据合约的最小变动价位。
      用法:
      MINPRICE; 取加载数据合约的最小变动价位。
      
    • MINPRICE1

      거래 계약의 최소 변동 가격.

      取交易合约的最小变动价位。
      用法:
      MINPRICE1; 取交易合约的最小变动价位。
      
  • 시간 함수

    • BARPOS

      K줄의 위치를 다.

      BARPOS,返回从第一根K线开始到当前的周期数。
      
      注:
      1、BARPOS返回本地已有的K线根数,从本机上存在的数据开始算起。
      2、本机已有的第一根K线上返回值为1。
      
      例1:LLV(L,BARPOS);        // 求本地已有数据的最小值。
      
      例2:IFELSE(BARPOS=1,H,0); // 当前K线是本机已有的第一根K线取最高值,否则取0。
      
    • DAYBARPOS

      DAYBARPOS는 K 라인 BAR가 그 날의 열 번째 K 라인 BAR이다.

    • 기간

      주기의 값은 몇 분이다.

      1, 3, 5, 15, 30, 60, 1440
      
    • 날짜

      날짜DATE 함수는 1900년 이래로 이 시기의 해일들을 얻는다.

      例1:
      AA..DATE;                  // 测试时AA的值为220218,表示2022年2月18日
      
    • 시간

      K줄의 시간을 다.

      TIME,取K线时间。
      
      注:
      1、该函数在盘中实时返回,在K线走完后返回K线的起始时间。
      2、该函数返回的是交易所数据接收时间,也就是交易所时间。
      3、TIME函数在秒周期使用时返回六位数的形式,即:HHMMSS,在其他周期上显示为四位数的形式,即:HHMM.
      4、TIME函数只能加载在日周期以下的周期中,在日周期及日周期以上的周期中该函数返回值始终为1500。
      5、使用TIME函数进行尾盘平仓的操作需要注意
      (1)尾盘平仓设置的时间建议设置为K线返回值中实际可以取到的时间(如:螺纹指数 5分钟周期 最后一根K线返回时间为1455,尾盘平仓设置为TIME>=1458,CLOSEOUT;则效果测试中不能出现尾盘平仓的信号)
      (2)使用TIME函数作为尾盘平仓的条件的,建议开仓条件也要做相应的时间限制(如设置尾盘平仓条件为TIME>=1458,CLOSEOUT;则相应的开仓条件中需要添加条件TIME<1458;避免平仓后再次开仓的情况)
      
      例1:
      C>O&&TIME<1450,BK;
      C<O&&TIME<1450,SK;
      TIME>=1450,SP;
      TIME>=1450,BP;
      AUTOFILTER;
      // 在14:50后平仓。
      例2:
      ISLASTSK=0&&C>O&&TIME>=0915,SK;
      
    • 1년

      연령은.

      YEAR,取得年份。
      
      注:
      YEAR的取值范围为1970—2033。
      
      例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);                               // 取上一年的最高价,最低价,开盘价,收盘价
      例2:
      NN:=IFELSE(YEAR>=2000 AND MONTH>=1,0,1);
      
    • 달을 가져오세요.

      MONTH,返回某个周期的月份。
      
      注:
      MONTH的取值范围为1—12.
      
      例1:
      VALUEWHEN(MONTH=3&&DAY=1,C);                // 在K线日期为三月一日时取其收盘价
      例2:
      C>=VALUEWHEN(MONTH<REF(MONTH,1),O),SP;
      
    • 1일

      어떤 주기에 도달한 날 수

      DAY,返回某一周期的日数。
      
      注:
      DAY取值范围为1-31。
      
      例1:
      DAY=3&&TIME=0915,BK;                      // 当日起为3日,时间为9点15分时,买开
      例2:
      N:=BARSLAST(DATE<>REF(DATE,1))+1;
      CC:=IFELSE(DAY=1,VALUEWHEN(N=1,O),0);      // 当日期为1时,取开盘价,否则取值为0
      
    • 시간

      몇 시간?

      HOUR,返回某周期的小时数。
      
      注:
      HOUR的取值范围为0—23
      
      例1:
      HOUR=10;                                   // 在10:00的K线上返回值为1,其余K线上返回值为0
      
    • 1분

      잠시만요.

      MINUTE,返回某个周期的分钟数。
      
      注:
      1:MINUTE的取值范围为0—59
      2:该函数只能加载在分钟周期上,返回当根K线开始的分钟数。
      例1:
      MINUTE=0;                                 // 在整点时刻的分钟K线上返回值为1,其余K线返回值为0
      例2:
      TIME>1400&&MINUTE=50,SP;                   // 在14:50的时候卖平仓
      
    • 주일

      몇 주인지 알 수 있습니다.

      WEEKDAY,取得星期数。
      
      注:
      1:WEEKDAY的取值范围是0—6。(星期日 ~ 星期六)
      
      例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;                               // 每个月交割日尾盘自动平仓
      例2:
      C>VALUEWHEN(WEEKDAY<REF(WEEKDAY,1),O)+10,BK;
      AUTOFILTER;
      
  • 논리 판단 함수

    • 바르스타투스

      현재 주기의 위치 상태를 반환합니다.

      BARSTATUS 返回当前周期的位置状态。
      
      注:
      该函数返回1表示当前周期是第一个周期,返回2表示是最后一个周期,返回0表示当前周期处于中间位置。
      
      例:
      A:=IFELSE(BARSTATUS=1,H,0);              // 如果当前K线是第一个周期,变量A返回K线最高值,否则取0
      
    • 그 사이에

      BETWEEN(X,Y,Z) 表示X是否处于Y和Z之间,成立返回1(Yes),否则返回0(No)。
      
      注:
      1、其中若X=Y、X=Z、或X=Y且Y=Z时函数返回值为1(Yse)。
      
      例1:
      BETWEEN(CLOSE,MA5,MA10);                // 表示收盘价介于5日均线与10日均线之间
      
    • BARSLASTCOUNT

      BARSLASTCOUNT (COND) 는 현재 주기로부터 계산하여 조건이 연속적으로 충족되는 주기의 수를 통계적으로 나타냅니다.

      注:
      1、返回值为从当前周期计算COND连续不为0的周期数
      2、条件第一次成立的当根k线上BARSLASTCOUNT(COND)的返回值为1
      
      例:
      BARSLASTCOUNT(CLOSE>OPEN);
      //计算当根K线在内连续为阳线的周期数
      
    • 크로스

      이 함수들은

      CROSS(A,B) 表示A从下方向上穿过B,成立返回1(Yes),否则返回0(No)
      
      注:
      1、满足穿越的条件必须上根k线满足A<=B,当根k线满足A>B才被认定为穿越。
      
      例1:
      CROSS(CLOSE,MA(CLOSE,5));              // 表示收盘线从下方向上穿过5周期均线
      
    • 크로스다운

      아래로 넘어가

      CROSSDOWN(A,B):表示当A从上方向下穿B,成立返回1(Yes),否则返回0(No)
      
      注:
      1、CROSSDOWN(A,B)等同于CROSS(B,A),CROSSDOWN(A,B)编写更利于理解
      
      例1:
      MA5:=MA(C,5);
      MA10:=MA(C,10);
      CROSSDOWN(MA5,MA10),SK;               // MA5下穿MA10卖开仓
      // CROSSDOWN(MA5,MA10),SK;与CROSSDOWN(MA5,MA10)=1,SK;表达同等意义
      
    • 크로스

      위쪽을 가로지르세요.

      CROSSUP(A,B)表当A从下方向上穿过B,成立返回1(Yes),否则返回0(No)
      
      注:
      1、CROSSUP(A,B)等同于CROSS(A,B),CROSSUP(A,B)编写更利于理解。
      
      例1:
      MA5:=MA(C,5);
      MA10:=MA(C,10);
      CROSSUP(MA5,MA10),BK;                 // MA5上穿MA10,买开仓
      // CROSSUP(MA5,MA10),BK;与CROSSUP(MA5,MA10)=1,BK;表达同等意义
      
    • 모두

      이 모든 것이 우리가 원하는 것이 아니냐는 것입니다.

      EVERY(COND,N),判断N周期内是否一直满足COND条件。若满足函数返回值为1,不满足函数返回值为0。
      
      注:
      1、N包含当前k线。
      2、若N是有效数值,但前面没有那么多K线,或者N为空值,代表条件不满足,函数返回值为0。
      3、N可以是变量。
      
      例1:
      EVERY(CLOSE>OPEN,5);                // 表示5个周期内一直是阳线
      例2:
      MA5:=MA(C,5);                       // 定义5周期均线
      MA10:=MA(C,10);                     // 定义10周期均线
      EVERY(MA5>MA10,4),BK;               // 4个周期内MA5都大于MA10,则买开仓
      // EVERY(MA5>MA10,4),BK;与EVERY(MA5>MA10,4)=1,BK;表达同等意义
      
    • 존재합니다

      이 모든 것이 만족감을 주는 것인지 판단하는 것이다.

      EXIST(COND,N)判断N个周期内是否有满足COND的条件。
      
      注:
      1、N包含当前k线。
      2、N可以是变量。
      3、若N是有效数值,但前面没有那么多K线,按实际周期数计算。
      
      例1:
      EXIST(CLOSE>REF(HIGH,1),10);     // 表示10个周期中是否存在收盘价大于前一个周期的最高价,存在返回1,不存在则返回0
      例2:
      N:=BARSLAST(DATE<>REF(DATE,1))+1;
      EXIST(C>MA(C,5),N);              // 表示当天是否有满足收盘价大于5周期均线的k线,存在返回1,不存在返回0
      
    • IF

      조건 함수.

      IF(COND,A,B)若COND条件成立,则返回A,否则返回B。
      
      注:
      1、COND是判断条件;A、B可以是条件,也可以是数值。
      2、该函数支持变量循环引用前一周期自身变量,即支持下面这样的写法Y:IF(CON,X,REF(Y,1))。
      例1:
      IF(ISUP,H,L);                   // k线为阳线,取最高价,否则取最低价
      例2:
      A:=IF(MA5>MA10,CROSS(DIFF,DEA),IF(CROSS(D,K),2,0));     // 当MA5>MA10时,取是否满足DIFF上穿DEA,否则(MA5不大于MA10),当K,D死叉时,令A赋值为2,若上述条件都不满足,A赋值为0
      A=1,BPK;                                                // 当MA5>MA10,以DIFF上穿DEA作为开多仓条件
      A=2,SPK;                                                // 当MA5不大于MA10,以K、D死叉作为开空仓条件
      
    • IFELSE

      조건 함수.

      IFELSE(COND,A,B) 若COND条件成立,则返回A,否则返回B。
      
      注:
      1、COND是判断条件;A、B可以是条件,也可以是数值。
      2、该函数支持变量循环引用前一周期自身变量,即支持下面这样的写法Y: IFELSE(CON,X,REF(Y,1));
      例1:
      IFELSE(ISUP,H,L);                                             // k线为阳线,取最高价,否则取最低价
      例2:
      A:=IFELSE(MA5>MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0));   // 当MA5>MA10时,取是否满足DIFF上穿DEA,否则(MA5不大于MA10),当K,D死叉时,令A赋值为2,若上述条件都不满足,A赋值为0
      A=1,BPK;                                                      // 当MA5>MA10,以DIFF上穿DEA作为开多仓条件
      A=2,SPK;                                                      // 当MA5不大于MA10,以K、D死叉作为开空仓条件
      
    • 계약서

      현재 계약이 정해져 있는지.

      ISCONTRACT(CODE)当前是否为指定的合约。
      
      用法:ISCONTRACT(CODE);是当前合约返回1,不是当前合约返回0。
      
      注:
      1、判断是否为指定合约时,CODE可以为合约的交易代码。
      
      例:
      ISCONTRACT('this_week');    // 数字货币OKEX期货合约
      ISCONTRACT('XBTUSD');       // 数字货币BITMEX期货合约
      

      정형 표현식을 지원합니다.

      계약에 대한 판단

      ISCONTRACT('this_week');                     // 判断当前合约是否为OKEX期货 this_week(当周)合约
      

      거래소 이름을 결정

      ISCONTRACT('@Futures_(Binance|FTX)');       // 判断当前交易所对象是否为Binance期货或者FTX期货
      ISCONTRACT('@(OKEX|Bitfinex)');             // 判断交易所,需要在开头加@字符
      
    • ISDOWN

      음경.

      ISDOWN判断该周期是否收阴。
      
      注:
      1、ISDOWN等同于C<O
      
      例:
      ISDOWN=1&&C<REF(C,1),SK;                    // 当根k线收阴并且收盘价小于前一周期收盘价,则开空
      // ISDOWN=1&&C<REF(C,1),SK;与ISDOWN&&C<REF(C,1),SK; 表达同等意义
      
    • ISEQUAL

      플래시 ᅳ

      ISEQUAL判断该周期是否平盘。
      
      注:
      1、ISEQUAL等同于C=O
      
      例1:
      EVERY(ISEQUAL=1,2),CLOSEOUT;                // 持续2根k线都是平盘,则全平
      
    • ISLASTBAR

      마지막 K 라인인지 판단합니다.

      ISLASTBAR判断该周期是否为最后一根k线。
      
      例1:
      VALUEWHEN(ISLASTBAR=1,REF(H,1));            // 当前k线是最后一根k线,则取前一周期的最高价
      
    • ISNULL

      공백값을 판단합니다.

      ISNULL判断空值。
      
      用法:ISNULL(N);如果N为空值,函数返回1;如果N为非空值,函数返回0。
      
      例:MA5:=IFELSE(ISNULL(MA(C,5))=1,C,MA(C,5));   // 定义五周期均线,K线数量不足五根时,返回当根K线的收盘价
      
    • ISUP

      태양빛.

      ISUP判断该周期是否收阳。
      
      注:
      1、ISUP等同于C>O。
      
      例:
      ISUP=1&&C>REF(C,1),BK;   // 若当根k线收阳并且收盘价大于前一周期收盘价,则开多
                               // ISUP=1&&C>REF(C,1),BK; 与 ISUP&&C>REF(C,1),BK
                               // 表达同等意义
      
    • 마지막

      함수를 판단합니다.

      LAST(COND,N1,N2)判断过去N1到N2周期内,是否一直满足COND条件。
      
      注:
      1、若N1与N2只相差一个周期(如N1=3,N2=2),则函数判断距离当前K线最近的那个周期上是否满足条件(即判断过去N2个周期的那根K线上是否满足条件)。
      2、当N1/N2为有效值,但当前的k线数不足N1/N2根,或者N1/N2空值的情况下,代表不成立,该函数返回0。
      3、N1、N2不可以是变量。
      
      例1:
      LAST(CLOSE>OPEN,10,5);   // 表示从过去第10个周期到第5个周期内一直是阳线
      例2:
      MA5:=MA(C,5);
      LAST(C>MA5,4,3);         // 判断距离当前k线3个周期的那根k线上是否满足C大于MA5
      
    • 롱크로스

      교차 함수를 유지합니다.

      LONGCROSS(A,B,N)表示A在N个周期内都小于B,本周期A从下向上穿越B。
      
      注:
      1、当N为有效值,但当前的k线数不足N根时,LONGCROSS函数返回空值。
      2、N不支持变量。
      
      例1:
      LONGCROSS(CLOSE,MA(CLOSE,10),20);   // 表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线
      
    • 아니죠

      아니.

      NOT(X):取非。当X=0时返回1,否则返回0。
      例1:
      NOT(ISLASTBK);如果上一个信号不是BK信号,则NOT(ISLASTBK)返回值为1;上一个信号是BK信号,则NOT(ISLASTBK)返回值为0。
      例2:
      NOT(BARSBK>=1)=1;                  // BK信号发出的当根K线上满足条件
      // NOT(BARSBK>=1)=1与NOT(BARSBK>=1)表达同等意义
      
    • NULL

      0을 반환합니다.

      返回空值
      用法:
      MA5:=MA(C,5);
      MA10:=MA(C,10);
      A:=IFELSE(MA5>MA10,MA5,NULL),COLORRED;  // 当MA5>MA10时,画五日均线MA5,不满足MA5>MA10时,返回空值,不画线
      
    • VALUEWHEN

      이 글의 내용은

      VALUEWHEN(COND,X)当COND条件成立时,取X的当前值。如COND条件不成立,则取上一次COND条件成立时X的值。
      
      注:
      X可以是数值也可以是条件。
      
      例1
      VALUEWHEN(HIGH>REF(HHV(HIGH,5),1),HIGH);  // 表示当前最高价大于前五个周期最高价的最大值时返回当前最高价
      例2:
      VALUEWHEN(DATE<>REF(DATE,1),O);           // 表示取当天第一根k线的开盘价(即当天开盘价)
      例3:
      VALUEWHEN(DATE<>REF(DATE,1),L>REF(H,1));  // 表示在当天第一根k线上判断当前最低价是否大于昨天最后一根K线的最高价。返回1,说明当天跳空高开。返回0,说明当天不满足跳空高开条件
      
  • 루킹 실행 함수

    • LOOP2

      순환 조건 함수.

      LOOP2(COND,A,B);循环条件函数若COND条件成立,则返回A,否则返回B。
      
      注:
      1、COND是判断条件;A、B可以是条件,也可以是数值。
      2、该函数支持变量循环引用前一周期自身变量,即支持下面这样的写法Y:=LOOP2(CON,X,REF(Y,1));
      
      例1:
      X:=LOOP2(ISUP,H,REF(X,1));                // k线为阳线,取当根K线的最高价,否则取上一次是阳线的K线的最高价;若之前未出现过阳线时,X返回为空值
      
      例2:
      BB:=LOOP2(BARSBK=1,LOOP2(L>LV(L,4),L,LV(L,4)),LOOP2(L>REF(BB,1),L,REF(BB,1))); // 持有多单时,开多单那根的前面4个周期内的最低价为起始止损点BB,后续K线最低价比前一个最低价高,取当前最低价为止损点,否则取前一个低点为止损点
      SS:=LOOP2(BARSSK=1,LOOP2(H<HV(H,4),H,HV(H,4)),LOOP2(H<REF(SS,1),H,REF(SS,1))); // 持有空单时,开空单那根的前面4个周期内的最高价为起始止损点SS,最高价比前一个最高价低,取当前最高价为止损点,否则取前一个高点为止损点
      H>HV(H,20),BK;
      L<LV(L,20),SK;
      C<BB,SP;
      C>SS,BP;
      AUTOFILTER;
      
  • 금융 통계 함수

    • 바스카운트

      첫 번째 유효주기부터 현재 주기의 수까지.

      BARSCOUNT(COND)第一个有效周期到当前的周期数。
      
      注:
      1、返回值为COND从第一个有效周期开始计算,到现在为止的周期数。
      2、条件第一次成立的当根k线上BARSCOUNT(COND)的返回值为0。
      
      例:
      BARSCOUNT(MA(C,4));                       // 计算MA(C,4)第一次有返回值到当前的周期数
      
    • BARSLAST

      마지막 조건은 위치입니다.

      BARSLAST(COND),上一次条件COND成立到当前的周期数。
      
      注:
      1、条件成立的当根k线上BARSLAST(COND)的返回值为0。
      
      例1:
      BARSLAST(OPEN>CLOSE);                     // 上一根阴线到现在的周期数
      例2:
      N:=BARSLAST(DATE<>REF(DATE,1))+1;         // 分钟周期,当日k线数
      // 由于条件成立的当根k线上BARSLAST(COND)的返回值为0,所以“+1”才是当日k线根数
      

      설명BARSLAST함수:

      • 1, 만약 현재 K선 조건이 정해진다면 0 를 반환합니다.
      • 2, 만약 성립하지 않으면, 조건이 성립된 K선을 찾을 때까지 계속 전진하여, 1개의 역행 주기수를 반환한다.
      • 3, 종말까지 거슬러 올라가도 조건이 만들어진 K줄을 찾지 못하면 유효하지 않은 값을 반환한다.
    • 바르센스

      첫 번째 조건은 현재 주기 수까지 설정됩니다.

      BARSSINCE(COND)第一个条件成立到当前的周期数。
      
      注:
      1、返回值为COND第一次成立到当前的周期数。
      2、条件第一次成立的当根k线上BARSSINCE(COND)的返回值为0。
      
      例:
      BARSSINCE(CLOSE>OPEN);                    // 统计第一次满足阳线这个条件的K线到现在的周期数
      
    • BARSSINCEN

      통계 N주기의 첫 번째 조건이 현재 주기의 수로 설정된다.

      BARSSINCEN(COND,N)统计N周期内第一次条件成立到当前的周期数。
      
      注:
      1、N包含当前k线。
      2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算。
      3、若N为0返回无效值。
      4、N可以为变量。
      
      例:
      N:=BARSLAST(DATE<>REF(DATE,1))+1;        // 分钟周期,当日K线数
      BARSSINCEN(ISUP,N);                      // 统计N周期内第一次满足阳线到当前的周期数
      
    • CONDBARS

      A,B 조건을 가장 최근에 만족하는 K선 간 주기의 수를 얻는다.

      CONDBARS(A,B);取得最近的满足A、B条件的k线间周期数。
      
      注意:
      1、该函数返回周期数不包含最后满足条件的K线。
      2、距离当前K线最近的满足的条件为B条件,则该函数返回值为最后一次满足A条件的K线到满足B条件的K线的周期数(A条件满足后的第一次满足B条件的K线)。
      距离当前K线最近的满足的条件为A条件,则该函数返回值为最后一次满足B条件的K线到满足A条件的K线的周期数(B条件满足后的第一次满足A条件的K线)。
      
      例1:
      MA5:=MA(C,5);                                        // 5周期均线
      MA10:=MA(C,10);                                      // 10周期均线
      CONDBARS(CROSSUP(MA5,MA10),CROSSDOWN(MA5,MA10));     // 最近一次满足5周期均线上穿10周期均线与5周期均线下穿10周期均线之间的周期数
      
    • 카운트

      전 세계 인구가 약 2천만 명에 달한다.

      COUNT(COND,N),统计N周期中满足COND条件的周期数。
      
      注:
      1、N包含当前k线。
      2、若N为0则从第一个有效值算起。
      3、当N为有效值,但当前的k线数不足N根,从第一根统计

더 많은

98K-시리즈 상위 거래 지표k 라인에서 j1을 통과하고, 태양선을 j1로 정지하고, 다시 j1을 눌러, 다시 측정할 수 있습니다. 하지만 성선에 있고, j1에 정지하지 않은 위치에서도 눌러집니다. D1:=if ((jk<0 && CROSS ((close,j1) and CLOSE>OPEN and close>j1,j1,0); D1,BK; /upload/asset/2af6fee82ea8bb3725687.png

98K-시리즈 상위 거래 지표국내의 사랑 거래 플랫폼에는 마어 언어의 함수 백리가 있으며, 나중에 호환될 수 있는지 여부는 모르지만, 호환 트레이딩뷰의 함수와 마찬가지로 양면 지표 전략은 직접 발명자에게 평면으로 옮겨 질 수 있습니다.

98K-시리즈 상위 거래 지표isLast ((x) 함수 설명: 현재 데이터가 마지막 데이터인지 판단합니다.

wanghehe711@qq.com어는 다양한 디스크를 실행할 수 있을까?

크림MARK 문자를 붙이기 위해 Java 또는 Python을 내장해야 할까요? 예를 들어보시겠습니까?

구름이 언어는 OKEX 계약을 지원합니까? OKEX 계약을 API에 액세스 할 수 있습니까?

작은 꿈이쪽을 보세요.

작은 꿈이 isLast 명령어는 현재 지원되지 않습니다.

작은 꿈메이 언어는 하나의 계정, 하나의 계정만을 조작할 수 있는 단일 계통, 단일 플랫폼 전략이다.

작은 꿈이 방식의 디자인은 좀 더 복잡하기 때문에 JS,PY를 직접 작성하는 것이 좋습니다.

작은 꿈OKEX 계약에 사용할 수 있습니다.