My 언어는 맥 언어의 호환과 강화된 프로그래밍 거래 언어이다. FMZ 계량된 My 언어는 엄격한 문법 검사를 받는데, 예를 들어 JavaScript 언어 코드에 언어 강화를 임베디드할 때,%%연산자 뒤에 1개 이상의 빈 문자가 있으면 오류가 발생한다.
-
기본 설명
-
계약
디지털 통화 계약
디지털 통화 계약
this_week 数字货币期货当周合约 next_week 数字货币期货次周合约 month 数字货币期货月度合约 quarter 数字货币期货季度合约 next_quarter 数字货币期货次季度合约 third_quarter 数字货币期货第三季度合约 last_quarter 最后季度合约 XBTUSD BITMEX永续合约 swap 除BITMEX交易所以外数字货币期货永续合约 具体可以参看JavaScript/Python/C++文档的exchange.SetContractType()函数部分 -
변수
변수 (variable) 는 컴퓨터의 메모리에서 데이터를 저장하기 위해 개방된 공간이다. 간단히 말해서 데이터를 저장하기 위한 공간이다.
첫 번째 변수를 열기
// 将1赋值给变量a a:=1;존재하다
麦语言그 중,数据量간단한 차이점:- 단일 값 데이터: 단 하나의 값, 예를 들어
0、1、’abc’。 - 시퀀스 데이터: 단일 값 데이터의 집합으로 구성된 데이터 시퀀스, 예를 들어
Close(폐쇄가격)Close포함된n1주기 종전 가격[ 10.1 , 10.2 , 10.3 , 10.4 , 10. 5 ...]
<unk> 변수 타입 <unk>에서 구분
- 문자열 타입: 필수
''패키지, 문자열 유형은 직접 사용이 허용되지 않으며, 함수 출력이 필요 합니다.
INFO(CLSOE>OPEN,'OK!');- 숫자 유형: 정수, 플래잉 포인트 수 (?? 소수) 을 포함한다.
// 整数 int:=2; // 小数 float:=3.1;- 부르 타입, 1 ((진짜를 나타내는) 또는 0 ((거짓을 나타내는) 을 사용한다: 1, 0, 사실 또는 거짓. 예를 들어:
A:=1>0;이 코드가 실행되면,A1 ≠ 1 입니다
// 当前周期收盘价大于-999,你会发现,每个周期的返回值都是1,代表true,因为收盘价几乎不可能为负数 is_true:=Close>-999;- 전역 변수
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선 수에 따라 결정된다.-
명명 규칙
대부분의 시스템에서, 변수 명칭은 시스템<unk>을 사용하여 문자<unk>을 보존하는 것을 허용하지 않습니다.
Close、Cᄒ 또한, 순수 숫자 또는 숫자 시작은 허용되지 않습니다. 긴 끝은 허용되지 않으며, 다른 시스템의 길이 제한은 다릅니다.
사실 중국어 분석의 효율성에 대해 주류 시스템과 얽매이지 않아도 됩니다. <unk>麦语言<unk> (<unk>麦语言<unk>) 는 중국어에 매우 친절합니다. <unk>码 (<unk>码) 의 수많은 오래된 드라이버들은 다음과 같은 두 가지 명명 규격을 사용하는 것을 권장합니다.- 중국어 이름
// 优雅的输出 五日均线:=MA(C,5);- 영어 + 밑줄
// 输出 move_avg_5:=MA(C,5);만약 여러분이 영어를 좋아한다면, 가능한 한 여러분의 변수가 이해될 수 있도록 하세요.
A1,AAA,BBB...이런 이름 붙이는 방식 ᄒ 믿으세요, 며칠 후에 다시 코드를 검토하면 기억이 없어서 매우 고통받습니다 ᄒ 마찬가지로 코드를 다른 사람에게 내보낼 때 독자의 정신이 무너질 것입니다 ᄒ이제부터는 <unk>麦 (<unk>麦) 언어 (<unk>麦語) 를 적극적으로 받아들이세요!
- 단일 값 데이터: 단 하나의 값, 예를 들어
-
데이터 타입
데이터 타입은 기본 개념으로, 프로그래밍에서 우리가 명확한 데이터 값을 변수에 부여할 때, 변수는 데이터 자체의 타입이 된다.
-
- 숫자 타입:
1、2、3、1.1234、2.23456 ... -
- 문자열 타입 ((str):
'1' 、'2' 、'3' ,字符串类型必须用 '' 包裹 -
- 일련의 데이터:
一系列单值数据构成的数据集合 -
- 부울 타입 (boolean):
사용
1대표true,0대표false。예시
// 声明一个数值类型的变量 var_int := 1; // 声明一个序列数据的变量 var_arr := Close; // 字符串类型不能单独声明,需要结合函数 INFO(C>O, '阳线');
-
-
연산자
지표 코드의 연산, 계산을 수행하는 데 사용되며, 간단히 말해서 연산에 참여하는 기호이다.
-
부여 연산자
어떤 변수에 값을 부여하는 데 사용됩니다.
-
:
:,는 함수를 나타내고, 도표 (~ 도표) 에 출력한다.Close1:Close; // 将Close赋值给变量Close1,并且输出到图中 -
:=
:=,는 값을 부여하지만, 도표 (주도표, 부도표...) 에 내보내지 않으며, 상태 <unk> 표에도 표시되지 않는다.Close2:=Close; // 将Close赋值给变量Close2 -
^^
^^두 개^기호는 값을 나타내며, 변수에 값을 부여하고, 도표에 출력된다.lastPrice^^C; -
..
..두 개.기호는 값을 나타내며, 변수에 값을 부여하고 변수의 이름과 수치를 도표에 표시하지만 도표에 그림을 그리지 않습니다.openPrice..O
-
-
관계 연산자
관계 연산자는 쌍방향 연산자이며, 조건식에서 사용된다. 두 데이터 사이의 관계를 판단하기 위해 사용된다.
반환 값: 부르 타입, 아닌
true(1) 즉false(0)。-
- 더 큰
>
// 将2>1的运算结果赋值给rv1变量,此时rv1=1 rv1:=2>1; - 더 큰
-
- 미만
<
// 返回false,也就是0,因为2大于1 rv3:=2<1; - 미만
-
- 더 크거나 같다는 것입니다.
>=
x:=Close; // 将收盘价大于等于10的运算的结果赋值给变量rv2 // 注意,由于close是一个序列数据,当进行close>=10运算的时候,本质是每个周期都进行运算,所以每个周期都会有一个1、0的返回值 rv2:=Close>=10; - 더 크거나 같다는 것입니다.
-
- 이보다 작은 것은
<=
此处省略 - 이보다 작은 것은
-
- 동일한
=
A:=O=C; // 判断开盘价是不是等于收盘价。 - 동일한
-
- 이 값은
<>
1<>2 // 判断1是否不等于2,返回值为1(true) - 이 값은
-
-
논리 연산자
반환 값: 부르 타입, 아닌
true(1) 즉false(0)。- 논리적으로
&&사용할 수 있습니다.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,成立- 논리적으로
||사용할 수 있습니다.or대안 또는 링크는 왼쪽과 오른쪽 양쪽에, 한쪽은 <true>로, 전체는 <true>로 설정된다.
cond_a:=1>2; cond_b:=4>3; cond_c:=5>6; cond_a || cond_b or cond_c; // 返回值为1,成立()연산자, 계산할 때 먼저 괄호 안에 있는 표현식을 계산한다.
1>2 AND (2>3 OR 3<5) // 运算结果为假 1>2 AND 2>3 OR 3<5 // 运算结果为真 - 논리적으로
-
계산기
返回值:数值类型수학적 연산자 (arithmetic operator) 는 기본적인 수학적 연산 (arithmetic operator) 을 수행하는 기호이며, 네 가지 연산을 처리하는 기호이다.
-
+
A:=1+1; // 返回 2 -
빼기
A:=2-1; // 返回 1 -
곱하기*
A:=2*2; // 返回 4 -
제외 /
A:=4/2; // 返回 2
-
-
-
기능
-
기능
프로그래밍의 세계에서, 함수<unk>은 실제로 어떤 기능을 구현한 코드이다. 그리고 다른 코드 호출을 위해 사용할 수 있다. 일반적인 형태는 다음과 같다:
function(param1,param2,...)-
구성:
함수 이름 ((변수 1, 변수 2,...), 변수가 없거나 여러 개의 변수가 있을 수 있다. 예를 들어
MA(x,n);대의원의 귀환n주기의 내부x△A의 간단한 이동 평균MA()함수입니다.x그리고n함수의 arguments 입니다.함수를 사용할 때 우리는 함수의 기본 정의를 알아야 합니다. 즉, 함수를 호출하면 어떤 데이터를 얻을 수 있는지 알아야 합니다. 일반적으로 함수는 모두 변수를 가지고 있으며, 변수를 입력할 때 입력된 데이터 타입이 일치하는지 확인해야 합니다. 현재 대부분의 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。 -
매개변수
2차 함수의 두 번째 중요한 개념은 변수이며, 다른 변수를 입력하면 다른 반환 값을 얻을 수 있다.
// 变量ma5接收5日收盘价移动平均值 ma5:=MA(C,5); // 变量ma10接收10日收盘价移动平均值 ma10:=MA(C,10);위의 변수
ma5、ma10첫 번째 변수X둘 다C(폐쇄가격), 사실C또한 함수 ((返回開盘至今的收盘价序列) 라고도 할 수 있지만, 이 함수는 arguments를 가지고 있지 않습니다.MA()함수, 우리는 몇 일간의 이동 평균을 얻을 수 있습니다. -
어떻게 배울 수 있을까요?
-
- 먼저, 함수의 역할, 즉 함수가 우리에게 어떤 데이터를 반환하는지 이해해야 합니다.
-
- 그리고 마지막으로, 반환값의 종류를 알아봅시다. 왜냐하면, 우리가 함수를 사용하는 이유는 반환값을 얻기 위해서이기 때문입니다.
-
- 두 번째, 우리는 변수의 데이터 타입을 알아야 합니다.
MA(x,n)만약 변수를 모르면,x、n이 데이터 타입은 제대로 반환할 수 없습니다.
- 두 번째, 우리는 변수의 데이터 타입을 알아야 합니다.
다음의 함수 소개와 사용은 위의 3가지 원칙을 따릅니다.
-
-
-
언어 강화
-
麦语言그리고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이 코드는 Mac 언어 코드에 의해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선bar들을 볼 수 있습니다.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이 코드 블록에서, 현재 bar에 접속하세요.평균적으로 높은 가격과 낮은 가격의 수를 계산한다.
%% 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선 Bar의 위치를 얻는다.
%% 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속성 표시 현재 거래 가능한지 (현재의 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; -
다중주기 데이터를 참조할 때 사용
REF、LLV、HHV예를 들어, 명령어가 데이터를 참조하는 경우(*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선 데이터 현재 시점의 역수 제2 BAR의 클로즈값이다.
REF(MIN5.C, 1)현재 모델의 K선 주기 ((( 위의 코드 회귀 주기가 1분으로 설정되어 있습니다.period: 1m), 현재 순간의 역수 제2 BAR가 있는 5분 주기 종전 가격.
이 두 가지 정의는 다른데, 필요에 따라 사용할 수 있다.
-
-
패턴 설명
-
한평평 신호 필터링 모델
이 모델은
AUTOFILTER함수는 제어하고 일평평한 신호 필터링을 구현하기 위해, 여러 개의 저장소 신호가 모두 조건을 충족하면, 첫 번째 신호를 유효 신호로 가져다가, 후의 k 선의 동일한 신호는 필터링됩니다.필터 모델 지원 명령어: BK, BP, BPK, SK, SP, SPK, CLOSEOUT, 지원하지 않는 BK ((5) 등 시계 번호를 가진 명령어 <unk>
예를 들어:
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), 손수 없이 상장 명령어를 지원하지 않는다.
(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 선에 여러 번 가저를 추가하거나, 여러 번 가저를 줄이는 것을 구현한다.
-
-
실행 모드
-
그래프로 보여
-
메인 그래프 부가 지표
연산자 사용
^^, 매개 변수에 값이 부여되는 동시에, 설정 지표가 메인 그래프에 표시된다.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的均线指标사용할 수 있습니다
DOT、COLORREDMac 언어에 익숙한 사용자들의 습관에 맞는 라인 타입, 색상 등으로 설정한다.
-
-
자주 묻는 질문
지표 작성 과정에서 일반적으로 발견되는 것을 소개합니다질문, 글쓰기 과정에서 주의해야 할 점들 ((지속적인 보완) <unk>)
-
점수 주의
;결론: -
주의: 시스템 키워드는 변수 선언으로 사용할 수 없습니다.
-
문자열 사용에 주의하세요단 기호,예를 들어:
'开仓'이 문자열은 -
참고
코멘트
-
// 注释内容(입입법에서 영어로 입력할 수 있다) 는 코드가 실행 중에 컴파일되지 않는 것을 의미한다. 즉 실행되지 않는다.//다음의 내용은 보통 우리가 코드의 의미를 표기하는 데 사용되며, 코드가 재검토될 때, 빠르게 이해, 기억할 수 있다. -
{ 注释内容 }이 글은 <unk>에 대한 것입니다.A:=MA(C,10); {上一行代码是计算均线。} -
(* 注释内容 *)이 글은 <unk>에 대한 것입니다.A:=MA(C,10); (*上一行代码是计算均线。*)
-
-
입력 방법
코드 작성 시, 입력법 중 영어로 전환하기 때문에 종종 기호 오류가 발생한다. 일반적인 기호는 다음과 같다:
:끝자락;코마,괄호()이 문자는 중국어와 영어의 다른 문자로 되어있기 때문에 주의해야 합니다.Google, Baidu, Bing을 이용하면 한 번 클릭하면
shift중국어, 영어, 중국어, 중국어, 중국어 -
논리 오류
- 최소, 최소, 최소의 관계 연산자
>=。 - 최대, 최대, 미치지 않는: 관계 연산자
<=。
- 최소, 최소, 최소의 관계 연산자
-
정책 시작 동기화
선물 전략에서, 전략 로봇이 시작되기 전에 수동으로 포지션이 열렸다면, 로봇이 시작될 때 포지션 정보를 검출하여 실제 포지션 상태와 동기화한다.
그리고 우리는 이것을 우리의 전략에 사용할 수 있습니다.SP,BP,CLOSEOUT이명박 대통령%% 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 라인 그래프의 트랜잭션 수
거래량
함수: VOL, 줄여서 V
변수: 없음
설명: "그 주기"의 거래량으로 돌아갑니다.
일련의 데이터
VOL取得K线图的成交量。 注: 可简写为V。 该函数在当根TICK上的返回值为当天所有TICK成交量的累计值。 例1: VV:=V; // 定义VV为成交量 例2: REF(V,1); // 表示前一个周期的成交量 例3: V>=REF(V,1); // 成交量大于前一个周期的成交量,表示成交量增加(V为VOL的简写) -
OPI
현재 미래에셋 (계약) 시장의 총 보유량을 <unk>다.
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 <unk>.
암호화폐 선물
UNIT 값은 계약 통화와 관련이 있습니다.
OKEX期货币本位合约:BTC合约1张代表100美元,其它币种的1张合约代表10美元 -
MINPRICE
데이터 계약의 최소 변동 가격.
取数据合约的最小变动价位。 用法: MINPRICE; 取加载数据合约的最小变动价位。 -
MINPRICE1
거래 계약의 최소 변동 가격.
取交易合约的最小变动价位。 用法: MINPRICE1; 取交易合约的最小变动价位。
-
-
시간 함수
-
BARPOS
K 선의 위치를 <unk>
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이다.
-
PERIOD
주기값은 분수입니다.
1, 3, 5, 15, 30, 60, 1440 -
DATE
날짜함수 DATE, 이 주기에서 1900년 이후의 연월일을 얻는다.
例1: AA..DATE; // 测试时AA的值为220218,表示2022年2月18日 -
TIME
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; -
YEAR
연도
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
달을 <unk>습니다.
MONTH,返回某个周期的月份。 注: MONTH的取值范围为1—12. 例1: VALUEWHEN(MONTH=3&&DAY=1,C); // 在K线日期为三月一日时取其收盘价 例2: C>=VALUEWHEN(MONTH<REF(MONTH,1),O),SP; -
DAY
어떤 주기의 일수를 얻는다.
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,返回某周期的小时数。 注: HOUR的取值范围为0—23 例1: HOUR=10; // 在10:00的K线上返回值为1,其余K线上返回值为0 -
MINUTE
1분
MINUTE,返回某个周期的分钟数。 注: 1:MINUTE的取值范围为0—59 2:该函数只能加载在分钟周期上,返回当根K线开始的分钟数。 例1: MINUTE=0; // 在整点时刻的分钟K线上返回值为1,其余K线返回值为0 例2: TIME>1400&&MINUTE=50,SP; // 在14:50的时候卖平仓 -
WEEKDAY
몇 주가 걸렸는지
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
현재 주기의 위치 상태로 돌아갑니다.
BARSTATUS 返回当前周期的位置状态。 注: 该函数返回1表示当前周期是第一个周期,返回2表示是最后一个周期,返回0表示当前周期处于中间位置。 例: A:=IFELSE(BARSTATUS=1,H,0); // 如果当前K线是第一个周期,变量A返回K线最高值,否则取0 -
BETWEEN
<unk>
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) 현재 주기에서 앞으로 계산하여, 통계적으로 연속적으로 조건을 만족하는 주기 수를 <unk>다.
注: 1、返回值为从当前周期计算COND连续不为0的周期数 2、条件第一次成立的当根k线上BARSLASTCOUNT(COND)的返回值为1 例: BARSLASTCOUNT(CLOSE>OPEN); //计算当根K线在内连续为阳线的周期数 -
CROSS
크로스 함수
CROSS(A,B) 表示A从下方向上穿过B,成立返回1(Yes),否则返回0(No) 注: 1、满足穿越的条件必须上根k线满足A<=B,当根k线满足A>B才被认定为穿越。 例1: CROSS(CLOSE,MA(CLOSE,5)); // 表示收盘线从下方向上穿过5周期均线 -
CROSSDOWN
아래로
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
위를 가로질러
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
계속 만족하는지 판단하는 것.
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
만족 여부를 판단하십시오.
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
현재 지정된 계약인지.
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
판단 함수
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
크로스 함수를 유지한다.
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
아니죠.
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
null을 반환한다.
返回空值 用法: 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
첫 번째 유효주기부터 현재의 주기 수까지
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 선을 찾아서, 거슬러 올라간 주기 수를 반환한다.
-
- 만약 끝까지 거슬러 올라가도 조건이 이루어진 K선도 발견되지 않는다면 null을 반환한다.
-
BARSSINCE
첫 번째 조건은 현재의 주기 수로 설정한다.
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周期均线之间的周期数 -
COUNT
통계에 따르면,
COUNT(COND,N),统计N周期中满足COND条件的周期数。 注: 1、N包含当前k线。 2、若N为0则从第一个有效值算起。 3、当N为有效值,但当前的k线数不足N根,从第一根统计到当前周期。 4、N 为空值时返回值为空值 。 5、N可以为变量。 例1: N:=BARSLAST(DATE<>REF(DATE,1))+1; // 分钟周期,当日k线数 M:=COUNT(ISUP,N); // 统计分钟周期上开盘以来阳线的根数 例2: MA5:=MA(C,5); // 定义5周期均线 MA10:=MA(C,10); // 定义10周期均线 M:=COUNT(CROSSUP(MA5,MA10),0); // 统计从申请到的行情数据以来到当前这段时间内,5周期均线上穿10周期均线的次数 -
DMA
동적인 이동 평균
DMA(X,A):求X的动态移动平均,其中A必须小于1大于0。 注: 1、A可以为变量。 2、如果A<=0或者A>=1,返回无效值。 计算公式:DMA(X,A)=REF(DMA(X,A),1)*(1-A)+X*A 例1: DMA3:=DMA(C,0.3); // 计算结果为REF(DMA3,1)*(1-0.3)+C*0.3 -
EMA
지수 가중 이동 평균.
EMA(X,N):求N周期X值的指数加权移动平均(平滑移动平均)。 注: 1、N包含当前k线。 2、对距离当前较近的k线赋予了较大的权重。 3、当N为有效值,但当前的k线数不足N根,按实际根数计算。 4、N为0或空值时返回值为空值。 5、N可以为变量。 EMA(X,N)=2*X/(N+1)+(N-1)*REF(EMA(X,N),1)/(N+1) 例1: EMA10:=EMA(C,10); // 求收盘价10周期指数加权移动平均值 -
EMA2
선형 가중 이동 평균.
EMA2(X,N); // 求N周期X值的线性加权移动平均(也称WMA) EMA2(X,N)=[N*X0+(N-1)*X1+(N-2)*X2+...+1*X(N-1)]/[N+(N-1)+(N-2)+...+1],X0表示本周期值,X1表示上一周期值 注: 1、N包含当前k线。 2、当N为有效值,但当前的k线数不足N根,返回值为空值。 3、N为0或空值时返回值为空值。 4、N可以为变量。 例1: EMA2(H,5); // 求最高价在5个周期的线性加权移动平均值 -
EMAWH
지수 가중 이동 평균.
EMAWH(C,N),指数加权移动平均,也叫平滑移动平均,采用指数加权方法,对距离当前较近的K线赋予了较大的权重。 注: 1、当N为有效值,当前的k线数不足N根时,或者前面周期的取值仍作用于当前周期时,EMAWH返回值为空值。 因为EMAWH计算公式中着重考虑了当周期的权重,所以当周期较长,前面的周期取值对当前的影响越小,EMAWH从前面数据对当前周期不再影响时的取值开始显示,所以即使选择的数据起始时间不同,当前已经显示的K线的EMAWH的取值也不会发生变化。 2、当N为0或空值时返回值均为空值。 3、N不能为变量。 EMAWH(C,N)=2*C/(N+1)+(N-1)*REF(EMAWH(C,N),1)/(N+1) 注: EMAWH用法同EMA(C,N) -
HARMEAN
조율 평균
HARMEAN(X,N),求X在N个周期内的调和平均值。 算法举例:HARMEAN(X,5)=1/[(1/X1+1/X2+1/X3+1/X4+1/X5)/5] 注: 1、N包含当前k线。 2、调和平均值与倒数的简单平均值互为倒数。 3、当N为有效值,但当前的k线数不足N根,函数返回空值。 4、N为0或空值的情况下,函数返回空值。 5、X为0或空值的情况下,函数返回空值。 6、N可以为变量。 例: HM5:=HARMEAN(C,5); // 求5周期收盘价的调和平均值 -
HHV
최대 값
HHV(X,N):求X在N个周期内的最高值。 注: 1、N包含当前k线。 2、若N为0则从第一个有效值开始算起。 3、当N为有效值,但当前的k线数不足N根,按照实际的根数计算。 4、N为空值时,返回空值。 5、N可以是变量。 例1: HH:=HHV(H,4); // 求4个周期最高价的最大值,即4周期高点(包含当前k线) 例2: N:=BARSLAST(DATE<>REF(DATE,1))+1; // 分钟周期,日内k线根数 HH1:=HHV(H,N); // 在分钟周期上,日内高点 -
HV
현재 K 라인을 제외한 최고 값
HV(X,N),求X在N个周期内(不包含当前k线)的最高值。 注: 1、若N为0则从第一个有效值开始算起(不包含当前K线)。 2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算,第一根k线返回空值。 3、N为空值时,返回空值。 4、N可以是变量。 例1: HH:=HV(H,10); // 求前10根k线的最高点 例2: N:=BARSLAST(DATE<>REF(DATE,1))+1; NN:=REF(N,N); ZH:=VALUEWHEN(DATE<>REF(DATE,1),HV(H,NN)); // 在分钟周期上,求昨天最高价 例3: HV(H,5)和REF(HHV(H,5),1)的结果是一样的,用HV编写更加方便。 -
HHVBARS
가장 높은 지점
HHVBARS(X,N),求N周期内X最高值到当前周期数。 注: 1、若N为0则从第一个有效值开始算起(不包含当前K线)。 2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算,第一根k线返回空值。 3、N为空值时,返回空值。 4、N可以是变量。 例1: HHVBARS(VOL,0); // 求历史成交量最大的周期到当前的周期数(最大值那根k线上HHVBARS(VOL,0);的返回值为0,最大值后的第一根k线返回值为1,依次类推) 例2: N:=BARSLAST(DATE<>REF(DATE,1))+1; // 分钟周期,日内k线根数 ZHBARS:=REF(HHVBARS(H,N),N)+N; // 在分钟周期上,求昨天最高价所在的k线到当前k线之间的周期数 -
LLV
최소 값
LLV(X,N),求X在N个周期内的最小值。 注: 1、N包含当前k线。 2、若N为0则从第一个有效值开始算起。 3、当N为有效值,但当前的k线数不足N根,按照实际的根数计算。 4、N为空值时,返回空值。 5、N可以是变量。 例1: LL:=LLV(L,5); // 求5根k线最低点(包含当前k线) 例2: N:=BARSLAST(DATE<>REF(DATE,1))+1; // 分钟周期,日内k线根数 LL1:=LLV(L,N); // 在分钟周期上,求当天第一根k线到当前周期内所有k线最低价的最小值 -
LV
현재 K선 이외의 최소값
LV(X,N),求X在N个周期内的最小值(不包含当前k线)。 注: 1、若N为0则从第一个有效值开始算起。 2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算。 3、N为空值时,返回空值。 4、N可以是变量。 例1: LL:=LV(L,10); // 求前面10根k线的最低点(不包含当前k线) 例2: N:=BARSLAST(DATE<>REF(DATE,1))+1; // 分钟周期,日内k线根数 NN:=REF(N,N); ZL:=VALUEWHEN(DATE<>REF(DATE,1),LV(L,NN)); // 在分钟周期上,求昨天最低价 例3: LV(L,5)和REF(LLV(L,5),1)的结果是一样的,用LV编写更加方便。 -
LLVBARS
가장 낮은 지점 위치
LLVBARS(X,N),求N周期内X最低值到当前周期数。 注: 1、若N为0则从第一个有效值开始算起(不包含当前K线)。 2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算,第一根k线返回空值。 3、N为空值时,返回空值。 4、N可以是变量。 例1: LLVBARS(VOL,0); // 求历史成交量最小的周期到当前的周期数(最小值那根k线上LLVBARS(VOL,0);的返回值为0,最小值后的第一根k线返回值为1,依次类推) 例2: N:=BARSLAST(DATE<>REF(DATE,1))+1; // 分钟周期,日内k线根数 ZLBARS:=REF(LLVBARS(L,N),N)+N; // 在分钟周期上,求昨天最低价所在的k线到当前k线之间的周期数 -
MA
수학 이동 평균.
MA(X,N),求X在N个周期内的简单移动平均。 算法:MA(X,5)=(X1+X2+X3+X4+X5)/5 注: 1、N包含当前k线。 2、简单移动平均线沿用最简单的统计学方式,将过去某特定时间内的价格取其平均值。 3、当N为有效值,但当前的k线数不足N根,函数返回空值。 4、N为0或空值的情况下,函数返回空值。 5、N可以为变量。 例1: MA5:=MA(C,5); // 求5周期收盘价的简单移动平均 例2: N:=BARSLAST(DATE<>REF(DATE,1))+1; // 分钟周期,日内k线根数 M:=IFELSE(N>10,10,N); // k线超过10根,M取10,否则M取实际根数 MA10:=MA(C,M); // 在分钟周期上,当天k线不足10根,按照实际根数计算MA10,超过10根按照10周期计算MA10 -
MV
평균값을 <unk>습니다.
MV(A,...P),取A到P的均值。 注: 1、支持取2-16个数值的均值。 2、A...P可以为数字也可以为变量。 例1: MV(CLOSE,OPEN); // 取收盘价和开盘价的平均值 -
NUMPOW
자연수 <unk>제곱과 <unk>
NUMPOW(X,N,M),自然数幂方和。 算法: NUMPOW(x,n,m)=n^m*x+(n-1)^m*ref(x,1)+(n-2)^m*ref(x,2)+...+2^m*ref(x,n-2)+1^m*ref(x,n-1) 注意: 1、N为自然数,M为实数;且N与M不能为变量。 2、X为基础变量。 例: JZ:=NUMPOW(C,5,2); -
SAR
파란선 회전.
SAR(N,STEP,MAX),返回抛物转向值。 根据公式SAR(n)=SAR(n-1)+AF*(EP(n-1)-SAR(n-1))计算。 其中: SAR(n-1):上根K线SAR的绝对值。 AF:加速因子,当AF小于MAX时,逐根的通过AF+STEP累加,涨跌发生转换时,AF重新计算。 EP:一个涨跌内的极值,在上涨行情中为上根K线的最高价;下跌行情中为上根K线的最低价。 注: 1、参数N,Step,Max均不支持变量。 例1: SAR(17,0.03,0.3); // 表示计算17个周期抛物转向,步长为3%,极限值为30% -
SMA
확장 지수 가중 이동 평균
SMA(X,N,M) 求X的N个周期内的扩展指数加权移动平均,M为权重。 计算公式:SMA(X,N,M)=REF(SMA(X,N,M),1)*(N-M)/N+X(N)*M/N 注: 1、当N为有效值,但当前的k线数不足N根,按实际根数计算。 2、 N为0或空值的情况下,函数返回空值。 例1: SMA10:=SMA(C,10,3); // 求的10周期收盘价的扩展指数加权移动平均,权重为3 -
SMMA
월간 이동 평균.
SMMA(X,N),X为变量,N为周期,SMMA(X,N)表示当前K线上X在N个周期的通畅移动平均线 算法:SMMA(X,N)=(SUM1-MMA+X)/N 其中SUM1=X1+X2+.....+XN MMA=SUM1/N 例1: SMMA(C,5); // 收盘价的5周期通畅移动平均线 -
SORT
해당 위치에서 순서를 매길 수 있습니다.
SORT(Type,POS,N1,N2,...,N16);按升(降)序排列,取第POS个参数对应的值。 注: 1、当Type为0按升序排列,当Type为1按降序排列。 2、TYPE,POS,不支持变量。 3、N1,...,N16为参数,支持常量、变量,最多支持16个参数。 例: SORT(0,3,2,1,5,3); // 2、1、5、3按升序排列,取排列第三的数字3 -
SUM
화해하라.
SUM(X,N),求X在N个周期内的总和。 注: 1、N包含当前k线。 2、若N为0则从第一个有效值开始算起。 3、当N为有效值,但当前的k线数不足N根,按照实际的根数计算。 4、N为空值时,返回空值。 5、N可以为变量。 例1: SUM(VOL,25);表示统计25周期内的成交量总和。 例2: N:=BARSLAST(DATE<>REF(DATE,1))+1; // 分钟周期,日内k线根数 SUM(VOL,N); // 分钟周期上,取当天成交量总和 -
SUMBARS
지정된 값에 대한 주기 수
SUMBARS(X,A),求累加到指定值的周期数。 注: 参数A支持变量。 例1: SUMBARS(VOL,20000);将成交量向前累加直到大于等于20000,返回这个区间的周期数。 -
TRMA
삼각형 이동 평균
TRMA(X,N),求X在N个周期的三角移动平均值。 算法:三角移动平均线公式,是采用算数移动平均,并且对第一个移动平均线再一次应用算数移动平均。 TRMA(X,N)算法如下: ma_half= MA(X,N/2) trma=MA(ma_half,N/2) 注: 1、N包含当前k线。 2、当N为有效值,但当前的k线数不足N根,函数返回空值。 3、N为0或空值的情况下,函数返回空值。 4、N支持使用变量。 例1: TRMA5:=TRMA(CLOSE,5); // 计算5个周期内收盘价的三角移动平均。(N不能被2整除) // TRMA(CLOSE,5)=MA(MA(CLOSE,(5+1)/2)),(5+1)/2); 例2: TRMA10:=TRMA(CLOSE,10); // 计算10个周期内收盘价的三角移动平均。(N能被2整除) // TRMA(CLOSE,10)=MA(MA(CLOSE,10/2),(10/2)+1)); -
TSMA
시간계 이동 평균.
TSMA(X,N),求X在N个周期内的时间序列三角移动平均。 TSMA(a,n) 算法如下: ysum=a[i]+a[i-1]+...+a[i-n+1] xsum=i+i-1+..+i-n+1 xxsum=i*i+(i-1)*(i-1)+...+(i-n+1)*(i-n+1) xysum=i*a[i]+(i-1)*a[i-1]+...+(i-n+1)*a[i-n+1] k=(xysum -(ysum/n)*xsum)/(xxsum- xsum/n * xsum) // 斜率 b= ysum/n - k*xsum/n forcast[i]=k*i+b // 线性回归 tsma[i] = forcast[i]+k // 线性回归+斜率 注: 1、当N为有效值,但当前的k线数不足N根,函数返回空值。 2、N为0或空值的情况下,函数返回空值。 3、N支持使用变量。 例1: TSMA5:=TSMA(CLOSE,5); // 计算5个周期内收盘价的序列三角移动平均
-
-
수학 통계 함수
-
AVEDEV
평균의 절대적 편차
AVEDEV(X,N),返回X在N周期内的平均绝对偏差。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N不能为变量。 算法举例:计算AVEDEV(C,3);在最近一根K线上的值。 用麦语言函数可以表示如下: (ABS(C-(C+REF(C,1)+REF(C,2))/3)+ABS(REF(C,1)-(C+REF(C,1)+REF(C,2))/3)+ABS(REF(C,2)-(C+REF(C,1)+REF(C,2))/3))/3; 例: AVEDEV(C,5); // 返回收盘价在5周期内的平均绝对偏差 // 表示5个周期内每个周期的收盘价与5周期收盘价的平均值的差的绝对值的平均值,判断收盘价与其均值的偏离程度 -
COEFFICIENTR
피르슨 관련 계수
COEFFICIENTR(X,Y,N),求X、Y在N个周期内的皮尔森相关系数。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N可以为变量。 算法举例:计算COEFFICIENTR(O,C,3);在最近一根K线上的值。 用麦语言函数可以表示如下: (((O-MA(O,3))*(C-MA(C,3))+(REF(O,1)-MA(O,3))*(REF(C,1)-MA(C,3))+(REF(O,2)-MA(O,3))*(REF(C,2)-MA(C,3))) /(STD(O,3)*STD(C,3)))/(3-1); 例: COEFFICIENTR(C,O,10); //求在10个周期内的皮尔森相关系数 //皮尔森相关系数是衡量两个随机变量之间的相关程度的指标 -
CORRELATION
관련 계수
CORRELATION(X,Y,N),求X、Y在N个周期内的相关系数。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N可以为变量。 算法举例:计算CORRELATION(O,C,3);在最近一根K线上的值。 用麦语言函数可以表示如下: (((O-MA(O,3))*(C-MA(C,3))+(REF(O,1)-MA(O,3))*(REF(C,1)-MA(C,3))+(REF(O,2)-MA(O,3))*(REF(C,2)-MA(C,3))))/SQRT((SQUARE(O-MA(O,3))+SQUARE(REF(O,1)-MA(O,3))+SQUARE(REF(O,2)-MA(O,3)))*(SQUARE(C-MA(C,3))+SQUARE(REF(C,1)-MA(C,3))+SQUARE(REF(C,2)-MA(C,3)))); 例: CORRELATION(C,O,10); // 求在10个周期内的相关系数 // 相关系数是衡量两个随机变量之间的相关程度的指标 -
COVAR
<unk> <unk> <unk> <unk>
COVAR(X,Y,N) 求X、Y在N个周期内的协方差。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N可以为变量。 算法举例:计算COVAR(O,C,3);在最近一根K线上的值。 用麦语言函数可以表示如下: (((O-MA(O,3))*(C-MA(C,3))+(REF(O,1)-MA(O,3))*(REF(C,1)-MA(C,3))+(REF(O,2)-MA(O,3))*(REF(C,2)-MA(C,3))) )/3; 例: COVAR(C,O,10); // 求在10个周期内的协方差 // 两个不同变量之间的方差就是协方差,如果两个变量的变化趋势一致,那么两个变量之间的协方差就是正值;如果两个变量的变化趋势相反,那么两个变量之间的协方差就是负值 -
DEVSQ
데이터 오차의 제곱을 얻습니다.
DEVSQ(X,N):计算数据X的N个周期的数据偏差平方和。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N不支持为变量。 算法举例:计算DEVSQ(C,3);在最近一根K线上的值。 用麦语言函数可以表示如下: SQUARE(C-(C+REF(C,1)+REF(C,2))/3)+SQUARE(REF(C,1)-(C+REF(C,1)+REF(C,2))/3)+SQUARE(REF(C,2)-(C+REF(C,1)+REF(C,2))/3); 例: DEVSQ(C,5); // 计算数据收盘价5个周期的数据偏差平方和 // 表示收盘价与收盘价均值偏差分别平方之后求和,DEVSQ(C,5)表示5个周期的收盘价与收盘价均值偏差分别平方之后求和 -
FORCAST
선형 회귀 값
FORCAST(X,N),为X的N周期线性回归预测值。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N可以是变量。 算法举例:用最小平方法计算FORCAST(C,3)在最近一根K线上的值。 1、建立一元线性方程:y=a+b*i+m 2、y的估计值:y(i)^=a+b*i 3、求残差:m^=y(i)-y(i)^=y(i)-a-b*i 4、误差平方和: Q=m(1)*m(1)+...+m(3)*m(3)=[y(1)-a-b*1]*[y(1)-a-b*1]+...+[y(3)-a-b*3]*[y(3)-a-b*3] 5、对线性方程中的参数a,b求一阶偏导: 2*{[y(1)-a-b*1]+...+[y(3)-a-b*3]}*(-1)=0 2*[y(1)-a-b*1]*(-1)+...+[y(3)-a-b*3]*(-3)=0 6、联立以上两个公式,解出a,b的值: a=(y(1)+y(2)+y(3))/3-b(i(1)+i(2)+i(3))/3 b=(y(1)*i(1)+y(2)*i(2)+y(3)*i(3)-(3*((i(1)+i(2)+i(3))/3)*((y(1)+y(2)+y(3))/3))/((i(1)^2+i(2)^2+i(3)^2)-3*((i(1)+i(2)+i(3))/3)^2) 7、将a,b,i值带入1,求出y值。 以上公式用麦语言函数可以表示如下: BB:=(3*C+2*REF(C,1)+REF(C,2)-(3*((1+2+3)/3)*MA(C,3)))/((SQUARE(1)+SQUARE(2)+SQUARE(3))-3*SQUARE((1+2+3)/3)); AA:=MA(C,3)-BB*(1+2+3)/3; YY:=AA+BB*3; 例: FORCAST(CLOSE,5); // 表示求5周期线性回归预测值 -
KURTOSIS
정점도 계수
KURTOSIS(X,N),求X在N个周期内的峰度系数。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N可以为变量。 6、N至少为4,少于4返回空值。 算法举例:计算KURTOSIS(C,4);在最近一根K线上的值。 用麦语言函数可以表示如下: ((POW(C-MA(C,4),4)+POW(REF(C,1)-MA(C,4),4)+POW(REF(C,2)-MA(C,4),4)+POW(REF(C,3)-MA(C,4),4)) /POW(STD(C,4),4))*(4*(4+1)/((4-1)*(4-2)*(4-3)))-3*SQUARE(4-1)/((4-2)*(4-3)); 例: KURTOSIS(C,10); // 表示收盘价的10周期峰值。峰值反映与正态分布相比某一分布的尖锐度或平坦度。正峰值表示相对尖锐的分布。负峰值表示相对平坦的分布 -
NORMPDF
정형 분포 확률 밀도.
NORMPDF(X,MU,SIGMA),返回参数为MU和SIGMA的正态分布密度函数在X处的值。 注: 1、MU或SIGMA为空值,该函数返回空值。 2、MU和SIGMA支持变量。 算法举例:随机变量X服从一个位置参数为MU、尺度参数为SIGMA的概率分布,其概率密度为NORMPDF(X,MU,SIGMA)。 用麦语言函数可以近似的表示如下: (1/(SQRT(2*3.14)*SIGMA))*EXP((-SQUARE(X-MU))/(2*SQUARE(SIGMA))); 例: TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR:=MA(TR,26); // 求26个周期内的TR的简单移动平均 ZZ..NORMPDF(ATR,0,1); // 定义变量ZZ,返回ATR服从标准正态分布的概率密度 -
SKEWNESS
편향 계수
SKEWNESS(X,N),求X在N个周期内的偏度系数。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N可以为变量。 6、N至少为3,少于3返回空值。 算法举例:计算SKEWNESS(C,3);在最近一根K线上的值。 用麦语言函数可以表示如下: ((POW(C-MA(C,3),3)+POW(REF(C,1)-MA(C,3),3)+POW(REF(C,2)-MA(C,3),3)) /POW(STD(C,3),3))*3/((3-1)*(3-2)); 例: SKEWNESS(C,10); // 表示收盘价的10周期偏度,偏度反映分布的不对称度,不对称度反映以平均值为中心的分布的不对称程度。正不对称度表示不对称部分的分布更趋向正值,负不对称度表示不对称部分的分布更趋向负值 -
SLOPE
선형 회귀의 기울기.
SLOPE(X,N),得到X的N周期的线型回归的斜率。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N可以为变量。 举例: 用最小平方法计算SLOPE(CLOSE,5)在最近一根K线上的的值: 1、建立一元线性方程:close=a+slope*i+m 2、close的估计值:close(i)^=a+slope*i 3、求残差:m^=close(i)-close(i)^=close(i)-a-slope*i 4、误差平方和: Q=m(1)*m(1)+...+m(5)*m(5)=[close(1)-a-slope*1]*[close(1)-a-slope*1]+...+[close(5)-a-slope*5]*[close(5)-a-slope*5] 5、对线性方程中的参数a,slope求一阶偏导: 2*{[close(1)-a-slope*1]+...+[close(5)-a-slope*5]}*(-1)=0 2*{[close(1)-a-slope*1]+...+[close(5)-a-slope*5]}*(-5)=0 6、联立以上两个公式,反解出slope的值: slope={[5*close(1))+...+1*close(5)]-[close(1)+...+close(5)]*(1+2+3+4+5)/5}/[(1*1+...+5*5)-(1+...+5)(1+...+5)/5] 以上公式用麦语言函数可以表示如下: ((5*C+4*REF(C,1)+3*REF(C,2)+2*REF(C,3)+1*REF(C,4))-SUM(C,5)*(1+2+3+4+5)/5)/((SQUARE(1)+SQUARE(2)+SQUARE(3)+SQUARE(4)+SQUARE(5))-SQUARE(1+2+3+4+5)/5); 例: SLOPE(CLOSE,5); // 表示求收盘价5个周期线性回归线的斜率 -
STD
샘플 기준이 나쁘다.
STD(X,N),求X在N个周期内的样本标准差。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N可以为变量。 算法举例:计算STD(C,3);在最近一根K线上的值。 用麦语言函数可以表示如下: SQRT((SQUARE(C-MA(C,3))+SQUARE(REF(C,1)-MA(C,3))+SQUARE(REF(C,2)-MA(C,3)))/2); 例: STD(C,10); // 求收盘价在10个周期内的样本标准差 // 标准差表示总体各单位标准值与其平均数离差平方的算术平均数的平方根,它反映一个数据集的离散程度。STD(C,10)表示收盘价与收盘价的10周期均线之差的平方和的平均数的算术平方根。样本标准差是样本方差的平方根 -
STDP
전체적인 기준은 낮습니다.
STDP(X,N),为X的N周期总体标准差。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N可以为变量。 算法举例:计算STDP(C,3);在最近一根K线上的值。 用麦语言函数可以表示如下: SQRT((SQUARE(C-MA(C,3))+SQUARE(REF(C,1)-MA(C,3))+SQUARE(REF(C,2)-MA(C,3)))/3); 例: STDP(C,10); // 为收盘价的10周期总体标准差 // 总体标准差是反映研究总体内个体之间差异程度的一种统计指标,总体方差是一组资料中各数值与其算术平均数离差平方和的平均数,总体标准差则是总体方差的平方根 -
VAR
표본이 다르죠.
VAR(X,N),求X在N周期内的样本方差。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N支持使用变量。 算法举例:计算VAR(C,3);在最近一根K线上的值。 用麦语言函数可以表示如下: (SQUARE(C-MA(C,3))+SQUARE(REF(C,1)-MA(C,3))+SQUARE(REF(C,2)-MA(C,3)))/(3-1); 例: VAR(C,5); // 求收盘价在5周期内的样本方差 // 表示总体方差的N/(N-1)倍,VAR(C,5)表示收盘价的5周期总体样本方差的5/4倍 -
VARP
전체적인 차이는
VARP(X,N),为X的N周期总体方差。 注: 1、N包含当前k线。 2、N为有效值,但当前的k线数不足N根,该函数返回空值。 3、N为0时,该函数返回空值。 4、N为空值,该函数返回空值。 5、N支持使用变量。 算法举例:计算VARP(C,3);在最近一根K线上的值。 用麦语言函数可以表示如下: (SQUARE(C-MA(C,3))+SQUARE(REF(C,1)-MA(C,3))+SQUARE(REF(C,2)-MA(C,3)))/3; 例: VARP(C,5); // 为收盘价的5周期总体方差 // 表示数据偏差平方和除以总周期数N,VARP(C,5)表示收盘价5个周期的数据偏差平方和除以5
-
-
수학 함수
-
ABS
절대값
ABS(X),取的X的绝对值。 注: 1、正数的绝对值是它本身。 2、负数的绝对值是它的相反数。 3、0的绝对值还是0。 例1: ABS(-10); // 返回10 例2: ABS(CLOSE-10); // 返回收盘价和的10价差的绝对值 例3: ABS(C-O); // 当前K线实体长度 -
ACOS
반음성 값
ACOS(X),返回X的反余弦值。 注: 1、X取值范围[-1,1]。 2、若X不在取值范围,返回值为空值。 例1: ACOS(-1); // 求-1的反余弦值 例2: ACOS(1); // 求1的反余弦值 -
ASIN
반正弦값
ASIN(X),返回X的反正弦值。 注: 1、X取值范围[-1,1]。 2、若X不在取值范围,返回值为空值。 例1: ASIN(-1); // 求-1的反正弦值 例2: ASIN(1); // 求1的反正弦值 -
ATAN
<unk> <unk>
ATAN(X),返回X的反正切值。 注:X的取值为R(实数集)。 例1: ATAN(-1.75); // 求-1.75的反正切值 例2: ATAN(1.75); // 求1.75的反正切值 -
CEILING
위쪽으로 회전하라.
CEILING(X,Y),返回指定实数(X)在沿绝对值增大的方向上第一个能整除基数(Y)的值。 注: 1、如果X和Y符号相同,则对值按远离0的方向进行舍入。 2、X和Y符号不同的情况下: (1)如果X为负,Y为正,则对值按朝向0的方向进行向上舍入。 (2)如果X为正,Y为负,CEILING返回无效值。 3、X、Y均可以为变量。 4、若X、Y中任意一个为空值,则该函数返回空值。 例1: CEILING(2.1,1); // 求得3 例2: CEILING(-8.8,-2); // 求得-10 例3: CEILING(CLOSE*1.01,1); // 求收盘价的1.01倍向上取整 例4: CEILING(-7,2); // 求得-6 例5: CEILING(8,-2); // 返回无效值 -
COS
<unk> <unk>
COS(X),返回X的余弦值。 注: 1、X的取值为R(实数集)。 2、值域为[-1,1]。 例1: COS(-1.57); // 返回-1.57的余弦值 例2: COS(1.57); // 返回1.57的余弦值 -
CUBE
큐브 함수
CUBE(X),返回X的三次方。 例1: CUBE(4); // 求4的立方 -
EXP
지수
EXP(X),求e的X次幂。 例1: C*EXP(0.01); // 求收盘价乘以e的0.01次幂 -
FLOOR
아래로 <unk>니다.
FLOOR(A),向数值减小方向舍入。 注: FLOOR(A)返回沿A数值减小方向最接近的整数,若A为整数,则返回值为A。 例1: FLOOR(2.1); // 返回值为2 例2: FLOOR(-8.8); // 返回值为-9 例3: FLOOR(5); // 返回值为5 例4: IFELSE(C-INTPART(C)>=0.5,CEILING(C),FLOOR(C)); // 对收盘价四舍五入后取整数部分 -
INTPART
<unk> <unk>
INTPART(X),取X的整数部分。 例1: INTPART(12.3); // 返回值为12 例2: INTPART(-3.5); // 返回值为-3 例3: INTPART(10); // 返回值为10 例4: INTPART(C); // 求收盘价的整数部分 -
LN
자연 대수
LN(X),求X的自然对数。 注: 1、X取值范围为非0自然数,即1、2、3、4、5 ... 2、若X取值为0或负数,返回值为空值。 例: LN(OPEN); // 求开盘价的对数 -
LOG
일반적으로 사용되는 대수
LOG(X),求X的常用对数值。 注: 1、该函数中X的取值范围为X>0。 2、0和负数没有对数,X为0或负数时返回值为空值。 例1: LOG(100); // 返回2 例2: LOG(0); // 返回空值 -
MAX
최대값
MAX(A,B),取最大值。取A,B中较大者。 注: 若A=B,返回值为A或者B的值。 例1: MAX(CLOSE,OPEN); // 表示取开盘价和收盘价中较大者 例2: MAX(CLOSE-OPEN,0); // 表示若收盘价大于开盘价返回它们的差值,否则返回0 例3: MAX(A,MAX(B,MAX(C,D))); // 求 A、B、C、D四者中的最大值 -
MAX1
최대한 활용하세요.
MAX1(A...P),在A到P中取最大值。 注: 1、支持2-16个数值进行比较。 2、A...P可以为数字也可以为变量。 例1: MAX1(CLOSE,OPEN); // 表示取开盘价和收盘价中较大者 例2: MAX1(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); // 表示取数字1-16中的最大值 -
MEDIAN
중간값을 구하라.
MEDIAN(X,N) 求X在N个周期内居于中间的数值。 注: 1、N个周期内所有X排序后,若N为奇数,则选择第(N+1)/2个为中位数,若N为偶数,则中位数是(N/2以及N/2+1)的平均数。 2、N可以为变量。 例1: 豆粕1509最近3日的收盘价为2727、2754、2748,那么当前MEDIAN(C,3)的返回值是2748。 例2: 豆粕1509最近4日的开盘价为2752、2743、2730、2728,那么当前MEDIAN(O,4)的返回值是2736.5。 -
MEDIAN1
중간값을 구하라.
MEDIAN1(A,...,P),求A到P内居于中间的数值。 注: 1、支持最多16个参数进行计算。 2、A...P可以为数值也可以为变量。 3、若参数个数为N,对N个参数排序后,N为奇数,则选择第(N+1)/2个为中位数,若N为偶数,则中位数是(N/2以及N/2+1)的平均数。 例1: AA:=MEDIAN1(O,C,H); // 开盘价、收盘价、最高价按数值排序,取居中的数值 例2: BB:=MEDIAN1(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); // 表示取数字1-16的中位数,BB返回8.5 -
MIN
최소값
MIN(A,B),取最小值。取A,B中较小者。 注: 若A=B,返回值为A或者B的值。 例1: MIN(OPEN,CLOSE); // 表示取开盘价和收盘价中的较小者 例2: MIN(C,MIN(O,REF(C,1))); // 求当前周期的开盘价,收盘价,以及上周期的收盘价间最小的数值 -
MIN1
최소값을 <unk>니다.
MIN1(A...P),在A到P中取最小值。 注: 1、支持2-16个数值进行比较。 2、A...P可以为数字也可以为变量。 例1: MIN1(CLOSE,OPEN); // 表示取开盘价和收盘价中较小者 例2: MIN1(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); // 表示取数字1-16中的最小值 -
MOD
모범을 따르세요.
MOD(A,B),取模。返回A对B求模。 例1: MOD(26,10); // 返回6,26除以10所得余数为6,即26对10的模为6 例2: MOD(A,2)=0; // 判断A为偶数 -
MODE
수를 불러주세요.
MODE(X,N),求X在N个周期内最常出现的值。 注: 1、如果N个周期内不含有重复的数值,则函数返回空值。 2、N可以为变量。 -
POW
<unk>.
POW(X,Y),求X的Y次幂。 注: 1、当X为负数时,Y必须为整数,因为底数为负时,不能进行开方运算,返回值为空值。 2、X,Y可以为数值,也可以为变量。 例1: POW(CLOSE,2); // 求得收盘价的2次方 例2: POW(10,2); // 返回值为100 例3: POW(1/2,-2); // 返回值为4 例4: POW(100,O-C); // 返回100的O-C次方 -
RAND
무작위 함수를 생성하는 무작위 함수
RAND(X,Y),产生随机数的随机函数,返回范围在X到Y之间的随机数。 注: 1、X、Y参数均支持设置为变量。 2、该函数仅支持返回整数。 3、当X>Y时,函数返回空值。 4、当X与Y的范围小于1时,函数返回无效值。 例1: RAND(1,60); // 返回1到60之间的随机数值 例2: RAND(C,O); // 返回收盘价到开盘价之间的随机数值 -
RANGE
범위
RANGE(X,Y,Z):介于某个范围之内。表示X大于Y同时小于Z时返回1,否则返回0 例1: RANGE(5,4,6); // 返回值为1 例2: RANGE(8,3,6); // 返回值为0 例3: MA5:=MA(C,5); MA10:=MA(C,10); MA20:=MA(C,20); RANGE(MA10,MA20,MA5),BK; // 10周期均线在5周期均线与20周期均线之间买开仓 // RANGE(MA10,MA20,MA5)=1,BK;与RANGE(MA10,MA20,MA5),BK;表达同等意义 -
REVERSE
반대값을 <unk>니다.
REVERSE(X),取相反值。返回-X。 例1: REVERSE(LOW); // 返回-LOW 例2: REVERSE(-55); // 返回值为55 例3: REVERSE(0); // 返回值为0 -
ROUND
지수는 4개로 나<unk>다.
ROUND(N,M),对数字N进行位数为M的四舍五入。 注: 1、N支持写为变量和参数;M不支持写为变量,可以写为参数。 2、M>0,则对数字N小数点后M位小数进行四舍五入。 3、M=0,则将数字N四舍五入为整数。 4、M<0,则在数字N小数点左侧前M位进行四舍五入。 例1: ROUND(125.345,2); // 返回125.35 例2: ROUND(125.345,0); // 返回125 例3: ROUND(125.345,-1); // 返回130 -
SGN
기호를 <unk>
SGN(X),取符号。若X>0返回1,若X<0返回-1,否则返回0。 例1: SGN(5); // 返回值为1 例2: SGN(-5); // 返回值为-1 例3: SGN(0); // 返回值为0 -
SIN
<unk> <unk> <unk>
SIN(X),求X的正弦值。 注: 1、X的取值为R(实数集)。 2、值域为(-1,1)。 例1: SIN(-1.57); // 返回-1.57的正弦值 例2: SIN(1.57); // 返回1.57的正弦值 -
SQRT
제곱근
SQRT(X),求X的平方根。 注: X的取值为正数,X为负数时返回空值。 例1: SQRT(CLOSE); // 收盘价的平方根 -
SQUARE
제곱
SQUARE(X)求X的平方。 例1: SQUARE(C); // 收盘价的平方 例2: SQUARE(2); // 2的平方 -
TAN
정확합니다.
TAN(X),返回X的正切值。 例1: TAN(0); // 返回0的正切值 例2: TAN(-3.14); // 返回-3.14的正切值
-
-
거래 지시
-
BK
BK<unk>을 사서 -
BP
BP평형상품 구매. -
SK
SK포스트를 팔라. -
SP
SP지분을 매각한다. -
BPK
BPK<unk> <unk> <unk> <unk> -
SPK
SPK매각 후 새로운 매장을 개설한다. -
CLOSEOUT
CLOSEOUT모든 방향의 지분을 없애라. -
SELECT
SELECT조건이 있는 K선 위에 한 형형을 표시한다. 일반적으로 형태인식 용도로 쓰인다. -
TRADE_AGAIN
TRADE_AGAIN(N), 이 함수를 포함하는 부하 모형에서, 동일한 명령줄은 N개의 신호를 연속으로 낼 수 있다. -
AUTOFILTER
AUTOFILTER"이런 일이 벌어진다면, 우리는 더 이상 이 일을 할 수 없을 것이다. -
MULTSIG
MULTSIG(Sec1, Sec2, N), k선 다중 신호의 지시값 방식을 설정 (TICK 단기 회신, 회신 정밀도를 설정할 수 있습니다) <unk>开仓信号出信号Sec1秒下单,不复核。 平仓信号出信号Sec2秒下单,不复核。
-
-
계산 제어 함수
-
FILTER
FILTER ((COND,N), 연속적으로 나타나는 신호를 필터링한다.
COND 조건이 성립될 때, 그 후 N주기의 데이터는 0을 반환한다.예를 들어:
a:=FILTER(CLOSE>OPEN, 3) // 查找阳线,3个周期内再次出现的阳线不被记录在内참고: BKPRICE, BARSBK, SKPRICE, BARSSK와 함께 사용할 수 없습니다.
-
AUTOFILTER
<unk>: <unk>: <unk>: <unk>: <unk>
AUTOFILTER启用一开一平信号过滤机制。 用法: 模型中含有AUTOFILTER函数,则启用一开一平信号过滤机制。 模型中不写入该函数,则每个指令都有效,支持加减仓。 模型的过滤规则: 1、连续的同方向指令只有第一个有效,其他的将被过滤; 2、交易指令必须先开仓后平仓,一开一平配对出现: 出现BK指令,下一个指令只允许出现SP\SPK指令; 出现SK指令,下一个指令只允许出现BP\BPK指令; 出现SP/BP/CLOSEOUT等平仓指令,下一个可以是BK/SK/SPK/BPK指令任一个; 反手指令SPK和BPK交叉出现。 例: CLOSE>OPEN,BK; CLOSE<OPEN,SP; AUTOFILTER; // 启用一开一平信号过滤机制 -
TRADE_AGAIN
제한 신호 함수
TRADE_AGAIN(N),同一指令行可以连续出N个信号。 用法: TRADE_AGAIN(N)含有该函数的加减仓模型中,同一指令行可以连续出N个信号。 注: 1、该函数只适用于加减仓模型。 2、模型中写入该函数,一根K线只支持一个信号。不可以和 MULTSIG 函数同时使用。 3、N个信号必须连续执行,如果期间出现其他信号,则N从新计算。 4、N不可以写为变量。 例: C>O,BK(1); // K线为阳线,买开1手 C<O,SP(BKVOL); // K线为阴线,卖平多头持仓 TRADE_AGAIN(3); // 同一指令行可以连续执行3次(如果连续三根阳线,则连续三次买开仓)
-
-
신호 기록 함수
-
BKPRICE
데이터 계약에서 가장 최근에 구매한 신호 가격으로 돌아갑니다.
BKPRICE返回数据合约最近一次买开信号价位。 用法: BKPRICE返回数据合约最近一次买开信号发出时的行情的最新价。 注: 1、当数据合约和交易合约相同时BKPRICE值和BKPRICE1值相等。 2、当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最近一次开仓信号的价格,而不是开仓均价。 3、不同信号执行方式,其返回值分别为: (1)信号执行方式为不进行信号复核 历史回测:BKPRICE返回信号发出时的数据合约行情最新价。 (2)信号执行方式选择K线走完确认信号下单 历史回测:BKPRICE返回信号发出时数据合约当根K线的收盘价。 (3)信号执行方式设置为K线走完进行信号复核 历史回测:BKPRICE返回信号发出时数据合约当根K线的收盘价。 例: BKPRICE-CLOSE>60 && BKPRICE>0 && BKVOL>0, SP; // 如果买开价位比当前价位高出60,且多头持仓存在,卖平仓 -
BKPRICEAV
복귀 데이터 계약 다단계 포지션 개시 평균 가격
BKPRICEAV返回数据合约多头开仓均价。 用法: BKPRICEAV返回数据合约多头开仓均价。 注: 1、一开一平信号过滤模型: (1)开仓信号后,未出平仓信号时:BKPRICEAV取值和BKPRICE取值相同。 (2)平仓信号后:BKPRICEAV返回值为0。 2、加减仓模型: (1)持仓不为0时:BKPRICEAV返回数据合约持仓的开仓均价。 (2)加减仓模型持仓为0时:BKPRICEAV返回值为0。 注: 该函数的计算考虑滑点。 例: CLOSE-BKPRICEAV>60,SP(BKVOL); // 当前价位比多头开仓均价高出60,平掉所有多头持仓 -
BKVOL
신호전자 번호를 구입하세요.
买开信号手数。 用法: BKVOL返回模型当前的多头持仓。 1、加载运行: (1)回测系统运行中,BKVOL不受资金情况的限制,按照信号显示开仓手数。 2、回测运行中: (1)如果资金不够开仓,开仓手数为0,BKVOL返回值为0。 (2)BK(BPK)信号出现并且确认固定后,BKVOL的取值增加开仓手数的数值;SP(SPK)信号出现并且确认固定后,BKVOL的取值减少平仓手数的数值。 例: BKVOL=0&&C>O,BK(1); // 多头持仓为0并且收盘价大于开盘价时,买开一手 BKVOL>=1&&H>HV(H,5),BK(2); // 多头持仓大于等于1,并且当根K线的最高价大于前面5个周期中最高价中最大值时,加仓2手 BKVOL>0&&L<REF(L,5),SP(BKVOL); // 多头持仓大于0,并且当根K线的最低价小于5个周期前K线的最低价时,卖平所有多头持仓 -
BKHIGH
데이터 계약이 매각된 이래로 가장 높은 가격으로 돌아왔습니다.
返回数据合约买开仓以来的最高价。 用法: BKHIGH返回数据合约最近一次模型买开位置到当前的最高价。 1、不同信号执行方式,其返回值分别为: (1)信号执行方式为K线走完确认信号下单。 a.历史信号计算中,BK(BPK)信号之后的K线返回委托以来的数据合约行情的最高价。 b.加载运行过程中,BK(BPK)信号当根K线返回的为信号发出时数据合约行情的最新价,BK之后的K线返回委托以来的数据合约行情最高价。 从BK(BPK)信号发出时开始统计数据合约行情的最高价;信号消失,返回上次买开以来的数据合约行情的最高价,信号确认存在,返回当根K线记录的数据合约行情的最高价。 注:BK信号发出后,中间出了信号消失,从最后一次信号出现开始统计数据合约最高价。 (3)信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG)。 BK(BPK)信号的当根K线返回从信号发出到K线走完时数据合约行情的最高价;BK(BPK)信号之后的K线返回信号发出以来数据合约行情的最高价。 例: C>O,BK; C>BKPRICE&&C<BKHIGH-5,SP; AUTOFILTER; // 最新价低于买开仓以来的数据合约最高价5个点,止盈平仓 -
BKLOW
데이터 계약 구매 이후 가장 낮은 가격으로 돌아왔습니다.
返回数据合约买开仓以来的最低价。 用法: BKLOW返回数据合约最近一次模型买开位置到当前的最低价。 1、不同信号执行方式,其返回值分别为: (1)K线走完确认信号下单 a.历史信号计算中,BK(BPK)信号之后的K线返回委托以来的数据合约行情的最低价。 b.加载运行过程中,BK(BPK)信号当根K线返回的为信号发出时数据合约行情的最新价,BK之后的K线返回委托以来的数据合约行情最低价。 从BK(BPK)信号发出时行情时开始统计数据合约行情的最低价;信号消失,返回上次买开以来的数据合约行情的最低价,信号确认存在,返回当根K线记录的数据合约行情的最低价。 注:BK信号发出后,中间出了信号消失,从最后一次信号出现开始统计数据合约最低价。 (3)信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG) BK(BPK)信号的当根K线返回的从信号发出到K线走完时数据合约行情的最低价;BK(BPK)信号之后的K线返回信号发出以来数据合约行情的最低价。 例: C>O,BK; C>BKLOW+5,SP; AUTOFILTER; // 最新价高于买开仓以来数据合约的最低价5个点,平仓 -
SKPRICE
데이터 계약의 마지막 신호 판매 가격으로 돌아갑니다.
SKPRICE 返回数据合约最近一次卖开信号价位。 用法: SKPRICE 返回数据合约最近一次卖开信号发出时的行情的最新价。 注: 1、当数据合约和交易合约相同时SKPRICE值和SKPRICE1值相等。 2、当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最近一次开仓信号的价格,而不是开仓均价。 3、不同信号执行方式,其返回值分别为: (1)信号执行方式为不进行信号复核 a.历史回测:SKPRICE返回信号发出时的数据合约行情最新价。 (2)信号执行方式选择K线走完确认信号下单 a.历史回测:SKPRICE返回信号发出时数据合约当根K线的收盘价。 (3)信号执行方式设置为K线走完进行信号复核 a.历史回测:SKPRICE返回信号发出时数据合约当根K线的收盘价。 例: CLOSE-SKPRICE>60 && SKPRICE>0 && SKVOL>0, BP; // 如果卖开价位比当前价位低出60,且空头持仓存在,买平仓 -
SKPRICEAV
다시 데이터 계약 공백 포지션 개시 평균 가격 <unk>.
SKPRICEAV 返回数据合约空头开仓均价。 用法: SKPRICEAV 返回返回数据合约空头开仓均价。 注: 1、一开一平信号过滤模型: (1)开仓信号后,未出平仓信号时:SKPRICEAV取值和SKPRICE取值相同。 (2)平仓信号后:SKPRICEAV返回值为0。 2、加减仓模型: (1)持仓不为0时:SKPRICEAV返回数据合约持仓的开仓均价。 (2)加减仓模型持仓为0时:SKPRICEAV返回值为0。 注: 该函数的计算考虑滑点。 例: SKPRICEAV-CLOSE>60,BP(SKVOL); // 当前价位比空头开仓均价低出60,平掉所有空头持仓 -
SKVOL
신호 번호를 팔아.
卖开信号手数 用法: SKVOL返回模型当前的空头持仓。 1、加载运行: (1)回测系统运行中,SKVOL不受资金情况的限制,按照信号显示开仓手数。 2、回测运行中: (1)如果资金不够开仓,开仓手数为0,SKVOL返回值为0。 (2)SK(SPK)信号出现并且确认固定后,SKVOL的取值增加开仓手数的数值;BP(BPK)信号出现并且确认固定后,SKVOL的取值减少平仓手数的数值。 例: SKVOL=0&&C<O,SK(1); // 空头持仓为0并且收盘价小于开盘价时,卖开一手 SKVOL>=1&&L<LV(L,5),SK(2); // 空头持仓大于等于1,并且当根K线的最低价小于前面5个周期中最低价中最小值时,加仓2手 SKVOL>0&&H>REF(H,5),BP(SKVOL); // 空头持仓大于0,并且当根K线的最高价大于5个周期前K线的最高价时,买平所有空头持仓 -
SKHIGH
데이터 계약 매각 이후 가장 높은 가격으로 돌아왔습니다.
返回数据合约卖开仓以来的最高价。 用法: SKHIGH返回数据合约最近一次模型卖开位置到当前的最高价。 1、不同信号执行方式,其返回值分别为: (1)K线走完确认信号下单 a.历史信号计算中,SK(SPK)信号之后的K线返回委托以来的数据合约行情的最高价。 b.加载运行过程中,SK(SPK)信号当根K线返回的为信号发出时数据合约行情的最新价,SK之后的K线返回委托以来的数据合约行情最高价。 从SK(SPK)信号发出时开始统计数据合约行情的最高价;信号消失,返回上次卖开以来的数据合约行情的最高价,信号确认存在,返回当根K线记录的数据合约行情的最高价。 注:SK信号发出后,中间出了信号消失,从最后一次信号出现开始统计数据合约最高价。 (3)信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG) SK(SPK)信号的当根K线返回的从信号发出到K线走完时数据合约行情的最高价;SK(SPK)信号之后的K线返回信号发出以来数据合约行情的最高价。 例: C<O,SK; C<SKHIGH-5,BP; AUTOFILTER; // 最新价低于卖开仓以来数据合约的最高价5个点,平仓 -
SKLOW
데이터 계약 매각 이후 가장 낮은 가격으로 돌아왔습니다.
返回数据合约卖开仓以来的最低价。 用法: SKLOW返回数据合约最近一次模型卖开位置到当前的最低价。 1、不同信号执行方式,其返回值分别为: (1)K线走完确认信号下单 a.历史信号计算中,SK(SPK)信号之后的K线返回委托以来的数据合约行情的最低价。 b.加载运行过程中,SK(SPK)信号当根K线返回的为信号发出时数据合约行情的最新价,SK之后的K线返回委托以来的数据合约行情最低价。 信号发出时行情时开始统计数据合约行情的最低价;信号消失,返回上次卖开以来的数据合约行情的最低价,信号确认存在,返回当根K线记录的数据合约行情的最低价。 注:SK信号发出后,中间出了信号消失,从最后一次信号出现开始统计数据合约最低价。 (3)信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG) SK(SPK)信号的当根K线返回的从信号发出到K线走完时数据合约行情的最低价;SK(SPK)信号之后的K线返回信号发出以来数据合约行情的最低价。 例: C<O,SK; C<SKPRICE&&C>SKLOW+5,BP; AUTOFILTER; // 最新价高于卖开仓以来数据合约的最低价5个点,止盈平仓 -
ISLASTBK
마지막 신호가 BK인지 판단하라.
ISLASTBK判断上一个交易信号是否是BK。 用法: ISLASTBK上一个交易信号是BK则返回1(Yes),否则返回0(No)。 BK信号未确认时,ISLASTBK返回值0。 BK信号确认后,ISLASTBK返回1。 b.信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG),BK信号当根ISLASTBK返回值为1。 注:模型中含有BPK条件,且上一个信号为平仓信号时,由BPK指令产生的BK信号,ISLASTBK返回0,ISLASTBPK返回1。 例: C>O,BK; ISLASTBK&&C>BKPRICE,SP; AUTOFILTER; // 上一个信号是BK信号,且最新价大于开仓价格,卖平仓 -
ISLASTSK
마지막 신호가 SK인지 판단하라.
ISLASTSK判断上一个交易信号是否是SK。 用法: ISLASTSK上一个交易信号是SK则返回1(Yes),否则返回0(No)。 SK信号未确认时,ISLASTSK返回值0。 SK信号确认后,ISLASTSK返回1。 b.信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG),SK信号当根ISLASTSK返回值为1。 注:模型中含有SPK条件,且上一个信号为平仓信号时,由SPK指令产生的SK信号,ISLASTSK返回0,ISLASTSPK返回1。 例: C<O,SK; ISLASTSK&&C<SKPRICE,BP; AUTOFILTER; // 上一个信号是SK信号,且最新价小于开仓价格,买平仓 -
ISLASTBP
마지막 신호가 BP인지 판단하라.
ISLASTBP判断上一个交易信号是否是BP。 用法: ISLASTBP上一个交易信号是BP则返回1(Yes),否则返回0(No)。 BP信号未确认时,ISLASTBP返回值0。 BP信号确认后,ISLASTBP返回1。 b.信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG),BP信号当根ISLASTBP返回值为1。 例: C<O,SK(2); C>O,BP(1); ISLASTBP,BP(1); // 上一个信号是买平仓信号,则减仓一手 -
ISLASTSP
마지막 신호가 SP인지 판단하라.
ISLASTSP判断上一个交易信号是否是SP。 用法: ISLASTSP,上一个交易信号是SP则返回1(Yes),否则返回0(No)。 SP信号未确认时,ISLASTSP返回值0。 SP信号确认后,ISLASTSP返回1。 b.信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG),SP信号当根ISLASTSP返回值为1。 例: C>O,BK(2); C<O,SP(1); ISLASTSP,SP(1); // 上一个信号是卖平仓信号,则减仓一手 -
ISLASTBPK
마지막 신호가 BPK인지 판단하라.
ISLASTBPK判断上一个交易信号是否是BPK。 用法: ISLASTBPK上一个交易信号是BPK则返回1(Yes),否则返回0(No)。 BPK信号未确认时,ISLASTBPK返回值0。 BPK信号确认后,ISLASTBPK返回1。 b.信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG),BPK信号当根ISLASTBPK返回值为1。 注:模型中含有BPK条件,且上一个信号为平仓信号时,由BPK指令产生的BK信号,ISLASTBK返回0,ISLASTBPK返回1。 例: C>O,BPK; ISLASTBPK&&C<O,SPK; AUTOFILTER; // 上一个信号是BPK信号,则反手SPK -
ISLASTSPK
마지막 신호가 SPK인지 판단하라.
ISLASTSPK判断上一个交易信号是否是SPK。 用法: ISLASTSPK上一个交易信号是SPK则返回1(Yes),否则返回0(No)。 SPK信号未确认时,ISLASTSPK返回值0。 SPK信号确认后,ISLASTSPK返回1。 b.信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG),SPK信号当根ISLASTSPK返回值为1。 注:模型中含有SPK条件,且上一个信号为平仓信号时,由SPK指令产生的SK信号,ISLASTSK返回0,ISLASTSPK返回1。 例: C<O,SPK; ISLASTSPK&&C>O,BPK; AUTOFILTER; // 上一个信号是SPK信号,则反手BPK -
ISLASTSTOP
마지막 신호가 STOP인지 판단하라.
ISLASTSTOP判断上一个交易信号是否是STOP。 用法: ISLASTSTOP上一个交易信号是STOP则返回1(Yes),否则返回0(No)。 注:收盘价模型STOP信号下根K线ISLASTSTOP返回值为1;指令价模型STOP信号当根K线ISLASTSTOP返回值为1。 例: CROSS(C,MA(C,5)),BK(2); STOP(0,5); ISLASTSTOP&&CROSS(C,MA(C,10)),BK(1); // 上一个信号是STOP信号,且价格上穿10周期均线,开仓一手 -
ISLASTCLOSEOUT
마지막 신호가 CLOSEOUT인지 판단하라.
ISLASTCLOSEOUT判断上一个信号是否CLOSEOUT。 用法: ISLASTCLOSEOUT上一个交易信号是CLOSEOUT返回1(Yes),否则返回0(No)。 CLOSEOUT信号未确认时,ISLASTCLOSEOUT返回值0。 CLOSEOUT信号确认后,ISLASTCLOSEOUT返回1。 b.信号执行方式选择不进行信号复核(例如:在模型中写入MULTSIG),CLOSEOUT信号当根ISLASTCLOSEOUT返回值为1。 例: ISLASTCLOSEOUT&&C>O,BK(1); // 上一个信号是清仓信号,并且当根K线是阳线,则买开一手 -
BARSBK
지난번 신호 위치를 샀습니다.
BARSBK上一次买开信号位置。 用法: BARSBK返回上一次买开仓的K线距离当前K线的周期数(不包含出现BK信号的那根K线)。 取包含BK信号出现的那根K线到当前K线的周期数,则需要在此函数后+1,即BARSBK+1;由于发出BK信号的当根k线BARSBK返回空值,则BARSBK+1在发出BK信号当根k线返回空值。 注: 1、若当前K线之前无BK信号,则函数返回值为空值。 2、BK信号固定后BARSBK返回为空值。 (1)设置信号执行方式为K线走完确认信号下单。 BARSBK返回值为上一个BK信号距离当前的K线根数(包含当前K线) (2)设置信号执行方式为出信号立即下单,不复核(例如:在模型中写入MULTSIG) a.历史信号计算中,出现BK信号的当根K线,BARSBK返回空值。 b.加载运行过程中,信号固定后BARSBK返回空值。 BARSBK返回值为上一个BK信号距离当前的K线根数(包含当前K线)。 例: 1、BARSBK>10,SP; // 上一次买开仓(不包含出现买开信号的那根K线)距离当前K线的周期数大于10,卖平 2、HHV(H,BARSBK+1); // 上一次买开仓(包含开仓信号出现的当根k线)到当前的最高价的最大值 当根K线出现BK信号,AA返回为空值,需要返回当根K线上最高价,模型需要修改为: AA:=IFELSE(BARSBK>=1,HHV(H,BARSBK+1),H); (1)当根K线出现BK信号,BARSBK返回为空值,不满足BARSBK>=1的条件,则取值为当根K线的最高价H。 (2)发出BK信号之后K线BARSBK返回买开仓的K线距离当前K线的周期数,满足BARSBK>=1的条件,则取值为HHV(H,BARSBK+1),即买开仓(包含开仓信号出现的当根k线)到当前的最高价的最大值。 修改后如果平仓条件中用到了AA的值,当根K线满足了平仓条件,可以出现平仓信号。 3、AA:=IFELSE(BARSBK>=1,REF(C,BARSBK),C); // 取最近一次买开仓K线的收盘价 (1)发出BK信号的当根k线BARSBK返回空值,则当根K线不满足BARSBK>=1的条件,AA返回当根k线的收盘价。 (2)发出BK信号之后的k线BARSBK返回买开仓的K线距离当前K线的周期数,则AA返回REF(C,BARSBK),即开仓k线的收盘价。 (3)例:1、2、3三根k线,1中的K线为开仓信号的当根k线,则返回当根k线的收盘价,2、3中的K线AA返回值为1中的K线的收盘价。 -
BARSSK
지난번 신호 위치를 팔았어요.
BARSSK上一次卖开信号位置。 用法: BARSSK返回上一次卖开仓的K线距离当前K线的周期数(不包含出现SK信号的那根K线)。 取包含SK信号出现的那根K线到当前K线的周期数,需要在此函数后+1,即BARSSK+1;由于发出SK信号的当根k线BARSSK返回空值,则BARSSK+1在发出SK信号当根k线返回空值。 注: 1、若当前K线之前无SK信号,则函数返回值为空值。 2、SK信号固定后BARSSK返回为空值。 (1)设置信号执行方式为K线走完确认信号下单。 BARSSK返回值为上一个SK信号距离当前的K线根数(包含当前K线) (2)设置信号执行方式为出信号立即下单,不复核(例如:在模型中写入MULTSIG) a.历史信号计算中,出现SK信号当根K线,BARSSK返回空值。 b.加载运行过程中,SK信号当根K线,信号固定后BARSSK返回空值。 BARSSK返回值为上一个SK信号距离当前的K线根数(包含当前K线)。 例: 1、BARSSK>10,BP; // 上一次卖开仓(不包含出现买开信号的那根K线)距离当前K线的周期数大于10,买平 2、LLV(L,BARSSK+1); // 上一次卖开仓(包含开仓信号出现的当根k线)到当前的最低价的最小值 当根K线出现SK信号,AA返回为空值,如果需要返回当根K线上最低价,模型需要修改为: AA:=IFELSE(BARSSK>=1,LLV(L,BARSSK+1),L); (1)当根K线出现SK信号,BARSSK返回为空值,不满足BARSSK>=1的条件,则取值为当根K线的最低价L。 (2)发出SK信号之后K线SARSBK返回卖开仓的K线距离当前K线的周期数,满足BARSSK>=1的条件,则取值为LLV(L,BARSSK+1),即卖开仓(包含开仓信号出现的当根k线)到当前的最低价的最小值。 修改后如果平仓条件中用到了AA的值,当根K线满足了平仓条件,可以出现平仓信号。 3、AA:=IFELSE(BARSSK>=1,REF(C,BARSSK),C); // 取最近一次卖开仓K线的收盘价 (1)发出SK信号的当根k线BARSSK返回空值,则当根K线不满足BARSSK>=1的条件,AA返回当根k线的收盘价。 (2)发出SK信号之后的k线BARSSK返回卖开仓的K线距离当前K线的周期数,则AA返回REF(C,BARSSK),即开仓k线的收盘价。 (3)例:1、2、3三根k线,1K线为开仓信号的当根k线,则返回当根k线的收盘价,2、3K线AA返回值为1K线的收盘价。 -
BARSSP
마지막 평점 신호 위치.
BARSSP上一次卖平信号位置。 用法: BARSSP返回上一次卖平仓的K线距离当前K线的周期数(不包含出现SP信号的那根K线)。 取包含SP信号出现的那根K线到当前K线的周期数,则需要在此函数后+1,即BARSSP+1。由于发出SP信号的当根k线BARSSP返回空值,则BARSSP+1在发出SP信号当根k线返回空值。 注: 1、若当前K线之前无SP信号,则函数返回值为空值。 2、SP信号固定后BARSSP返回为空值。 (1)设置信号执行方式为K线走完确认信号下单。 BARSBP返回值为上一个BP信号距离当前的K线根数(包含当前K线)。 (2)设置信号执行方式为出信号立即下单,不复核(例如:在模型中写入MULTSIG) a.历史信号计算中,出现SP信号当根K线,BARSSP返回空值。 b.加载运行过程中,SP信号当根K线,信号固定后BARSSP返回空值。 BARSSP返回值为上一个SP信号距离当前的K线根数(包含当前K线)。 例: 1、BARSSP>10,BK; // 上一次卖平仓(不包含出现卖平信号的那根K线)距离当前K线的周期数大于10,买开 2、AA:=HHV(H,BARSSP+1); // 上一次,卖平仓(包含平仓信号出现的当根k线)到当前的最高价的最大值 当根K线出现SP信号,AA返回为空值,如果需要返回当根K线上最高价,模型需要修改为: AA:=IFELSE(BARSSP>=1,HHV(H,BARSSP+1),H); (1)当根K线出现SP信号,BARSSP返回为空值,不满足BARSSP>=1的条件,则取值为当根K线的最高价H。 (2)发出SP信号之后K线BARSSP返回买平仓的K线距离当前K线的周期数,满足BARSSP>=1的条件,则取值为HHV(H,BARSSP+1),即卖平仓(包含平仓信号出现的当根k线)到当前的最高价的最大值。 3、AA:=IFELSE(BARSSP>=1,REF(C,BARSSP),C); // 取最近一次卖平仓K线的收盘价 (1)发出SP信号的当根k线BARSSP返回空值,则当根K线不满足BARSSP>=1的条件,AA返回当根k线的收盘价。 (2)发出SP信号之后的k线BARSSP返回卖平仓的K线距离当前K线的周期数,则AA返回REF(C,BARSSP),即平仓k线的收盘价。 (3)1、2、3三根k线,1中的K线为平仓信号的当根k线,则返回当根k线的收盘价,2、3中的K线AA返回值为1中的K线的收盘价。 -
BARSBP
지난번 평소 신호 위치 <unk>
BARSBP上一次买平信号位置。 用法: BARSBP返回上一次买平仓的K线距离当前K线的周期数(不包含出现BP信号的那根K线)。 取包含BP信号出现的那根K线到当前K线的周期数,则需要在此函数后+1,即BARSBP+1。由于发出BP信号的当根k线BARSBP返回空值,则BARSBP+1在发出BP信号当根k线返回空值。 注: 1、若当前K线之前无BP信号,则函数返回值为空值。 2、BP信号固定后BARSBP返回为空值。 (1)设置信号执行方式为K线走完确认信号下单。 BARSBP返回值为上一个BP信号距离当前的K线根数(包含当前K线) (2)设置信号执行方式为出信号立即下单,不复核(例如:在模型中写入MULTSIG) a.历史信号计算中,出现BP信号当根K线,BARSBP返回空值。 b.加载运行过程中,BP信号当根K线,信号固定后BARSBP返回空值。 BARSBP返回值为上一个BP信号距离当前的K线根数(包含当前K线)。 例: 1、BARSBP>10,BK; // 上一次买平仓(不包含出现买平信号的那根K线)距离当前K线的周期数大于10,买开 2、AA:=HHV(H,BARSBP+1); // 上一次买平仓(包含平仓信号出现的当根k线)到当前的最高价的最大值 当根K线出现BP信号,AA返回为空值,如果需要返回当根K线上最高价,模型需要修改为: AA:=IFELSE(BARSBP>=1,HHV(H,BARSBP+1),H); (1)当根K线出现BP信号,BARSBP返回为空值,不满足BARSBP>=1的条件,则取值为当根K线的最高价H。 (2)发出BP信号之后K线BARSBP返回买平仓的K线距离当前K线的周期数,满足BARSBP>=1的条件,则取值为HHV(H,BARSBP+1),即买平仓(包含平仓信号出现的当根k线)到当前的最高价的最大值。 3、AA:=IFELSE(BARSBP>=1,REF(C,BARSBP),C);//取最近一次买平仓K线的收盘价: (1)发出BP信号的当根k线BARSBP返回空值,则当根K线不满足BARSBP>=1的条件,AA返回当根k线的收盘价。 (2)发出BP信号之后的k线BARSBP返回买平仓的K线距离当前K线的周期数,则AA返回REF(C,BARSBP),即平仓k线的收盘价。 (3)例:1、2、3三根k线,1中的K线为平仓信号的当根k线,则返回当根k线的收盘价,2、3中的K线AA返回值为1中的K线的收盘价。 -
REFSIG_VOL
루트 K 라인에서 역수 시작하여 N번째 고정된 시그 신호의 신호 시계를 반환한다.
사용법:
REFSIG_VOL(Sig,N);, 루트 K 선에서 역으로 계산하기 시작하면 N번째 고정된 시그 신호의 수를 판단한다. 만약 시그 신호가 없거나, 고정된 시그 신호가 없다면, 이 함수는 0을 반환한다.참고:
1 , 시그 위치 지원 신호는:BK,SK,BP,SP,BPK,SPK,CLOSEOUT,STOP。
2, 만약 역수 N번째 고정된 Sig 신호가 동근 K 선에 있다면, 이 함수는 현재 신호 수를 반환한다.
4, N이 0 또는 null일 때, 이 함수는 0을 반환한다.
5. 변수 N은 변수를 지원한다.예를 들어:
// 如果从当根K线开始倒数第3个固定的BK信号所在的距离当前K线有5根K线,并且信号手数大于2,平掉所有持仓 REFSIG_PLACE(BK,3)=5&&REFSIG_VOL(BK,3)>2,SP(BKVOL); -
REFSIG_PRICE
루트 K 선부터 역수 N번째 고정 시그 신호의 신호값을 반환한다.
사용법:
REFSIG_PRICE(Sig,N);, 루트 K 선부터 역수로 시작하는 N번째 고정된 시그 신호의 신호값을 판단한다. 만약 시그 신호가 없거나 고정된 시그 신호가 없다면 이 함수는 null을 반환한다.참고:
1 , 시그 위치 지원 신호는:BK,SK,BP,SP,BPK,SPK,CLOSEOUT,STOP。
2 , 만약 루트 K 선에 고정된 Sig 신호가 있다면, 이 함수는 신호를 계산할 때, 루트 K 선의 신호를 포함한다.
3, N이 0 또는 null일 때 이 함수는 null을 반환한다.
4 , 변수 N은 변수를 지원한다 .예를 들어:
// 如果从当根K线开始倒数第3个固定的BK信号的开仓价位为3000,并且多头持仓大于0,卖平仓 REFSIG_PRICE(BK,3)=3000&&BKVOL>0,SP; -
COUNTSIG
통계 N주기 동안, X신호의 수
사용법:
COUNTSIG(X,N);통계 N주기 동안, X신호의 수
x는BK,SK,SP,BP,SPK,BPK,CLOSEOUT,STOP。참고:
1 통계주기에는
(1) 현재 k선을 포함한다.
(2) N가 0일 경우 첫 번째 유효값에서 계산한다.
(3) 유효값이 N이지만 현재 k줄이 N근 미만인 경우, 첫 번째 줄에서 현재 주기까지 계산한다.
(4) N은 null이고, 반환값은 null이다.
(5) N은 변수이다.
2., 통계 신호:
(1) 신호 수행 방식은 K 라인 끝으로 확인 신호 또는 K 라인 끝으로 검토 신호를 선택한다 (예를 들어: 모델에 CHECKSIG ((SIG,'A',0,'D',0,0);) 을 적어), 루트 K 라인에 고정되지 않은 신호를 포함하지 않는다, 즉 이미 고정된 신호 수를 반환한다.
(2) 신호 실행 방식은 신호 점검을 하지 않는 것으로 선택한다 (예를 들어: 모델에 MULTSIG 또는 MULTSIG_MIN;를 쓰다).
3 , BPK 명령어에서 생성된 BK 신호는 BPK 신호에 따라 처리되며, SPK 명령어에서 생성된 SK 신호는 동일하다.예를 들어:
N:=BARSLAST(DATE<>REF(DATE,1))+1; BKN:=COUNTSIG(BK,N); MA5:=MA(C,5); BKN=0&&C>MA5,BK; // 当日内日未出现过BK信号并且最新价大于5周期均线,则买开仓 -
ENTRYSIG_PLACE
지정된 창고 개설 신호의 K선 위치를 <unk>.
사용법:
ENTRYSIG_PLACE(N);, 전체 거래에서 N번째 포지션 열기 신호가 있는 K선 위치를 <unk>. 포지션 열기 신호가 없다면 이 함수는 null을 반환한다.참고:
1.. 창고 열기 신호는:BK,SK,BPK,SPK。
2. 포지션 개시에서 포지션 보유까지 0은 하나의 완전한 거래로 간주됩니다.
3. 하나의 완전한 거래에서 포지션 신호가 N보다 작을 때 이 함수는 null을 반환한다.
4 K 라인 위치는 현재 K 라인이 지정된 창고 개설 신호의 K 라인에 대한 근수를 의미한다.
5, N이 0 또는 null일 때 이 함수는 null을 반환한다.
6, 변수 N은 변수로 지원되지 않는다.예를 들어:
ENTRYSIG_PLACE(3)=5&&BKVOL>0,SP; // 如果第3个开仓信号所在K线距离当前K线有5根K线,并且多头持仓大于0,卖平仓 -
ENTRYSIG_PRICE
지정된 창고 개설 신호의 가격을 <unk>다.
사용법:
ENTRYSIG_PRICE(N);, 전체 거래에서 N번째 포지션 개설 신호의 가격을 <unk>. 포지션 개설 신호가 없다면 이 함수는 null을 반환한다.참고:
1.. 창고 열기 신호는:BK,SK,BPK,SPK。
2. 포지션 개시에서 포지션 보유까지 0은 하나의 완전한 거래로 간주됩니다.
3. 하나의 완전한 거래에서 포지션 신호가 N보다 작을 때 이 함수는 null을 반환한다.
4, N이 0 또는 null일 때 이 함수는 null을 반환한다.
5. 변수 N은 변수로 지원되지 않는다.
6. 이 함수의 계산에는 슬라이드 포인트가 포함된다.
7., 종식값 모델: 지정된 신호의 대진 K선 함수의 취하는 값은 변하지 않는다.
지시 가격 모델: 지정된 신호의 당근 K 선은 거래 당시에 N 번째 포지션 개설 신호의 가격을 반환한다.예를 들어:
ENTRYSIG_PRICE(3)=3000&&BKVOL>0,SP; // 如果第3个固定的开仓信号的开仓价位为3000,并且多头持仓大于0,卖平仓 -
ENTRYSIG_VOL
지정된 창고 개설 신호의 신호시간을 <unk>다.
사용법:
ENTRYSIG_VOL(N);, 전체 거래에서 N번째 포지션 열기 신호의 신호 시간을 <unk>. 포지션 열기 신호가 없다면 이 함수는 null을 반환한다.참고:
1.. 창고 열기 신호는:BK,SK,BPK,SPK。
2. 포지션 개시에서 포지션 보유까지 0은 하나의 완전한 거래로 간주됩니다.
3. 하나의 완전한 거래에서 포지션 신호가 N보다 작을 때 이 함수는 null을 반환한다.
4, N이 0 또는 null일 때 이 함수는 null을 반환한다.
5. 변수 N은 변수로 지원되지 않는다.
6 , 종식값 모델: 지정된 신호의 대근 K선 함수의 취하는 값은 변하지 않는다.
지시 가격 모델: 지정된 신호의 당근 K 선에서 거래 당시 N 번째 포지션 개설 신호의 신호 시간을 반환한다.예를 들어:
ENTRYSIG_PRICE(3)=3000&&ENTRYSIG_VOL(3)>2,SP; // 如果第3个固定的开仓信号的开仓价位为3000,并且第3个固定的开仓信号的信号手数大于2,卖平仓 -
EXITSIG_PLACE
지정 평상시 신호의 K선 위치를 <unk>.
사용법:
EXITSIG_PLACE(N);, 전체 거래에서 N번째 평점 신호가 있는 K선 위치를 <unk>. 평점 신호가 없다면 이 함수는 null을 반환한다.참고:
1 , 평점 신호는:BP,SP,CLOSEOUT,STOP。
2. 포지션 개시에서 포지션 보유까지 0은 하나의 완전한 거래로 간주됩니다.
3 △ 평지 신호의 수가 N보다 작을 때 이 함수는 null을 반환한다.
4 K선 위치는 현재 K선과 지정 평상시 신호가 있는 K선의 근수이다.
5, N이 0 또는 null일 때 이 함수는 null을 반환한다.
6, 변수 N은 변수로 지원되지 않는다.예를 들어:
EXITSIG_PLACE(3)=5&&BKVOL<=0,BK; // 如果第3个平仓信号所在K线距离当前K线有5根K线,并且没有多头持仓,买开仓 -
EXITSIG_PRICE
지정된 평지 신호의 가격을 <unk>다.
사용법:
EXITSIG_PRICE(N);, 전체 거래에서 N번째 평점 신호의 가격을 <unk>. 평점 신호가 없다면 이 함수는 null을 반환한다.참고:
1 , 평점 신호는:BP,SP,CLOSEOUT,STOP。
2. 포지션 개시에서 포지션 보유까지 0은 하나의 완전한 거래로 간주됩니다.
3, 하나의 완전한 거래에서 평점 신호의 수가 N보다 작으면 이 함수는 null을 반환한다.
4, N이 0 또는 null일 때, 이 함수는 0을 반환한다.
5. 변수 N은 변수로 지원되지 않는다.
6 이 함수의 계산에는 슬라이드 포인트가 포함됩니다.
7., 종식값 모델: 지정된 신호의 대진 K선 함수의 취하는 값은 변하지 않는다.
지시 가격 모델: 지정된 신호의 당근 K 선은 거래 당시 N번째 평소 위치 신호의 가격을 반환한다.예를 들어:
EXITSIG_PRICE(3)=3000&&BKVOL>0,SP; // 如果第3个固定的平仓信号的平仓价位为3000,并且多头持仓大于0,卖平仓 -
EXITSIG_VOL
지정된 평상시 신호의 신호시간을 <unk>다.
사용법:
EXITSIG_VOL(N)완전한 거래에서 N번째 평소 신호의 신호 시간을 <unk>. 평소 신호가 없으면 이 함수는 null을 반환한다.참고:
1 , 평점 신호는:BP,SP,CLOSEOUT,STOP。
2. 포지션 개시에서 포지션 보유까지 0은 하나의 완전한 거래로 간주됩니다.
3, 하나의 완전한 거래에서 평점 신호의 수가 N보다 작으면 이 함수는 null을 반환한다.
4, N이 0 또는 null일 때, 이 함수는 0을 반환한다.
5. 변수 N은 변수로 지원되지 않는다.
6 , 종식값 모델: 지정된 신호의 대근 K선 함수의 취하는 값은 변하지 않는다.
지시 가격 모델: 지정된 신호의 대진 K 라인에서 거래 당시 N 번째 평지 신호의 신호 시간을 반환한다.예를 들어:
EXITSIG_PRICE(3)=3000&&EXITSIG_VOL(3)>2,BK; // 如果第3个固定的平仓信号的平仓价位为3000,并且第3个固定的平仓信号的信号手数大于2,买开仓
-
-
위치 함수
-
MYVOL
<unk>: <unk>: <unk>
MYVOL取下单手数。 用法:取下单手数,多用于在加减仓模型加载多个合约的时候的手数计算。 注: 回测:返回回测参数中设置的手数。 例: // 加载参数中下单手数设置为3时,下面编写BK的下单手数为6 C>O,BK(2*MYVOL); C<O,SP(BKVOL); -
MONEY
계좌 사용 가능한 돈
MONEY账户可用资金。 用法:MONEY返回账户可用资金,用于仓位、手数等计算。 计算方法: 1、账户中MONEY的初始值为保证金参数中设置的起始资金。 2、历史回测中MONEY的初始值为回测参数中设置的初始资金。 3、开仓信号当根k线的MONEY值:开仓前可用资金-持仓保证金-手续费,其中持仓保证金=开仓价格*保证金比例*交易单位*手数。 4、开仓后未平仓的k线的MONEY值=开仓信号前k线的MONEY值+浮动盈亏PROFIT。 5、平仓信号当根k线的MONEY值:平仓前可用资金+平仓盈亏+平仓释放的保证金-手续费,其中平仓释放的保证金=开仓价格*保证金比例*交易单位*手数。 注: 1、信号执行方式为,‘K线走完确认下单’或‘XX下单,K线走完复核’: a.开仓信号当根K线,MONEY返回值为上根K线的可用资金-开仓保证金-手续费。 b.平仓信号当根K线,MONEY返回值为上根K线的可用资金+平仓盈亏+持仓释放的保证金-手续费。 2、信号执行方式选择,‘出信号下单,不进行复核’: a.开仓信号当根K线,MONEY返回值为当根k线开仓之前的可用资金-开仓保证金-手续费。 b.平仓信号当根K线,MONEY返回值为当根K线平仓之前的可用资金+平仓盈亏+平仓释放的保证金-手续费。 3、信号执行方式为‘K线走完确认信号下单’时,平仓盈亏=(平仓信号当根K线的收盘价-开仓价格)*手数*交易单位-手续费。 4、信号执行方式为‘出信号立即下单,不复核’时,平仓盈亏=(平仓信号的指令价-开仓价格)*手数*交易单位-手续费。 5、账户初始化后,MONEY返回值为初始化框中可用资金。 例: K:=MONEY*0.2/(C*MARGIN*UNIT+FEE); // 账户可用资金的20%可以开仓的手数(此写法适用于按固定手数收取手续费的合约),FEE自定义,或者计算 -
MONEYTOT
계좌권익
MONEYTOT账户权益。 用法:MONEYTOT返回当前账户权益,模型进行仓位控制、下单手数等资金管理时使用。 计算方法:MONEYTOT=账户可用资金+持仓保证金。 注: 1、账户中MONEYTOT的初始值为保证金参数中设置的起始资金。 2、历史回测中MONEYTOT的初始值为回测参数中设置的初始资金。 3、账户初始化时: a.当前信号为开仓信号,MONEYTOT返回值为初始化框中账户可用资金。 b.当前信号为平仓信号,则MONEYTOT返回初始化框中账户可用资金+持仓保证金。 4、开仓信号当根k线:MONEYTOT=账户可用资金+持仓保证金。 5、开仓后平仓前:MONEYTOT返回当前账户可用资金+持仓保证金。 6、平仓信号当根k线:持仓为0时,MONEYTOT=可用资金;持仓不为0时,MONEYTOT=可用资金+持仓占用的保证金。 注: 持仓列表可用资金为包含了浮动盈亏的可用资金(= 当前权益 - 持仓占用的保证金)。 例: K:=MONEYTOT*0.2/(C*MARGIN*UNIT+FEE); // 账户权益的20%可以开仓的手数(此写法适用于按固定手数收取手续费的合约),FEE自定义,或者计算。 -
ACCOUNTMONEY
거래 계좌에 있는 사용 가능한 자금을 돌려받습니다.
MONEY。사용법:
ACCOUNTMONEY거래 계좌에서 사용 가능한 자금을 돌려받으세요. -
ACCOUNTMONEYTOT
거래 계좌에 있는 권익이
MONEYTOT。사용법:
ACCOUNTMONEYTOT거래 계좌에 있는 권리를 돌려받으세요. -
COINS
디지털 화폐 현금 계좌 사용 가능한 화폐 수
1、用于数字货币现货,获取当前可用币数。 -
MARGIN
레버리지
디지털 화폐 현금
a := MARGIN; // 固定为值1암호화폐 선물
디지털 화폐 선물은 레버를 설정한다.
a := MARGIN; // 声明变量a,给a赋值当前合约杠杆率
-
-
TICK 데이터 함수
-
ASK1
얻을
TICK판매 가격. -
ASK2
얻을
TICK"이건 정말 대단한 일입니다. -
ASK3
얻을
TICK3개의 가격으로 팔립니다. -
ASK4
얻을
TICK4달러에 팔리는 <unk> -
ASK5
얻을
TICK이 사진의 제목은 "미국어: -
ASK1VOL
얻을
TICK<unk> <unk> <unk> -
ASK2VOL
얻을
TICK<unk> <unk> <unk> <unk> -
ASK3VOL
얻을
TICK3개의 판매량. -
ASK4VOL
얻을
TICK4개의 판매량. -
ASK5VOL
얻을
TICK5권 팔렸어요. -
BID1
얻을
TICK<unk> <unk> <unk> -
BID2
얻을
TICK<unk>은 <unk>은 <unk> -
BID3
얻을
TICK<unk>은 <unk>은 <unk> -
BID4
얻을
TICK<unk> <unk> -
BID5
얻을
TICK<unk> <unk> <unk> -
BID1VOL
얻을
TICK<unk> <unk> <unk> <unk> -
BID2VOL
얻을
TICK<unk> <unk> <unk> <unk> -
BID3VOL
얻을
TICK3배 씩 샀어요. -
BID4VOL
얻을
TICK4개의 <unk>을 샀습니다. -
BID5VOL
얻을
TICK5개의 <unk>을 샀습니다. -
NEW
얻을
TICK최신 가격.
-
-
시스템
-
EXIT
이 문자는 "이 문자는 '%s'입니다.
EXIT('msg'); // 需要传入参数,字符串参数需要使用''包裹,抛出一个错误,错误文本为字符串msg -
INFO
로그 출력
INFO(cond, param, ...); 1、cond 为条件变量,为真输出日志。 2、条件变量后可跟多个可变参数。 例子: INFO(1, C, '<-收盘价'); -
CONTRACT
CONTRACT를 사용하여 현재 설정된 계약 지도를 얻을 수 있는 거래소 계약 코드.
INFO(1, CONTRACT); -
DATA
DATA 명령어를 사용하여 데이터를 로드하십시오.
(*backtest start: 2020-01-21 00:00:00 end: 2020-02-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] *) A:DATA('https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json'); INFO(1, CONTRACT, A); C>HV(H, 10),SPK; C<LV(L, 15),BPK; AUTOFILTER;사용
['属性名称']그리고 우리는 이 자료에서 어떤 속성의 값을 얻습니다.https://www.fmz.com/upload/asset/1ef31d778467ed9dd00.json외부 데이터 링크로, 다른 서비스 프로그램에서 제공하는 데이터 링크가 될 수 있으며, 예를 들어 예제에서 언급된 부분과 같이 발명자의 양적 거래 플랫폼 데이터 센터에서 제공하는 데이터 링크가 될 수 있습니다.(*消费指数:DATA('CPI')['城市'];*)코드 사용CPI데이터를 가져오기 (데이터 전부는 아직 공개되지 않았다)(*backtest start: 2018-01-21 00:00:00 end: 2020-02-12 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] *) 消费指数:DATA('https://www.fmz.com/upload/asset/1ef31d778467ed9dd00.json')['城市']; (*消费指数:DATA('CPI')['城市'];*) 消费指数>HV(消费指数, 90),BPK; 消费指数<LV(消费指数, 90),SPK; AUTOFILTER;
-
-
다른
-
맥 언어 클래스 라이브러리 파라미트
-
최소 점수
BITMEX의 최소 점수는 0.5이다.
OKEX 선물 거래소에서 최소 점수는 0.01 <unk>이다.어떤 계약 가격이 상대적으로 낮을 때, 가격화폐 정밀도, 거래 품종 정밀도 이러한 매개 변수의 설정이 적절한지 주의할 필요가 있다.
-
가변 사이클의 최대 수
영향을 미치는 그래프의 K선 BAR의 수와javascript전략에서 호출SetMaxBarLen함수는 동일하다. -
맥어 언어 전략, 상태 <unk> 표에 표시된 지분 수
평균은 실제 보유량이다.
-
조건적 판단 (이렇게 쓰는 것은 권장하지 않습니다) <unk>
IF H > C THEN BEGIN X:=10; END
-
-
예를 들어:
-
실시간 가격 모형에서 K선Bar을 추가할 때 검출:
VARIABLE:N:0; IF N <> BARPOS AND ISLASTBAR = 1 THEN BEGIN N:=BARPOS; INFO(1, '123'); END
-
-
国内的爱交易平台 有麦语言的函数库 ,不知以后可否兼容下,像兼容tradingview上的函数一样,这样两边的指标策略,直接就可以平移到发明者上来量化了
- 1













