Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]ref失效了

1楼
塞外小王子 发表于:2020/7/11 23:10:45
今天研究波动性突破系统,别人给了个例子,是文华的代码:

1.1系统设计思想

波动性突破, 本身带有一定程度自适应市场的特点, 为趋势跟踪系统中的上品, 我们再加入时间清仓、 顺势下轿的元素, 在中性的盘整市道中主动退出突破交易, 或在发生第二次波动性突破的时候顺势平仓,这样就部分解决了利润回撒的问题, 至于参数, 个人倾向于没有参数的交易系统模型最好, 最具有未来市场的适应能力, 如果必须要有一两个参数, 那么以该参数在大幅度变动的测试环境下, 仍然可以盈利为佳。

1.2波动性突破系统的文华财经源码:

TR:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE, 1)-HIGH)), ABS (REF(CLOSE, 1)-LOW));
ATR := MA(TR, 10);
DT:=CLOSE>REF(CLOSE, l)+REF(ATR, l)×1.5;
KT:=CLOSEREF(CLOSE, l)+REF(ATR, l)×1.5, 2)=1&&DT:
KT2:=COUNT(CLOSE<REF(CLOSE, 1)-REF(ATR, l)×1.5, 2)=1&&KT:
DT,BPK;
KT,SPK;
CROSS (BARSLAST (DT),N) || DT2, SP;
CROSS (BARSLAST (KT),N) || KT2, BP;

我翻译到金字塔的代码如下:

input: N(5, 1, 120, 1);

波幅:= max(max((high-low), abs(ref(close, 1) -high)), abs(ref(close, 1)-low));

ATR : MA(TR, 10), NOAXIS;

D := 0;

if CLOSE > REF(CLOSE, l) then D := 1;

lastATR : REF(ATR, l), NOAXIS;

DT := D + lastATR ×1.5;

K := 0;

if CLOSE < REF(CLOSE, l) then K := 1;

KT := K - lastATR×1.5;

DT2 := count(D + lastATR * 1.5, 2) = 1 and DT;

KT2 := count(K - lastATR * 1.5, 2) = 1 and KT;

if DT then begin // 反手开多,BPK

sellshort(holding < 0, 100%, market);

buy(1, 1, market);

end;

if KT then begin // 反手开空,SPK

sell(holding > 0, 100%, market);

buyShort(1, 1, market);

end;

// 平多(卖平),SP

sell(BARSLAST(DT) > N or DT2, 100%,  market);

// 平空(买平),BP

sellshort(BARSLAST(KT) > N or KT2, 100%, market);


有两个问题:1. 不知道自己翻译的对不对;2. 如果转换的没问题的话,我在调试过程中发现,lastATR这个值始终是空的,调试器里不显示,图上也不显示,如下两张图。

https://github.com/etherCrossroads/img/blob/master/TIM%E6%88%AA%E5%9B%BE20200711230826.png

https://github.com/etherCrossroads/img/blob/master/TIM%E6%88%AA%E5%9B%BE20200711230911.png

2楼
FireScript 发表于:2020/7/13 8:56:24
lastATR:REF(ATR, l);
你这里写的是L 不是1.
3楼
塞外小王子 发表于:2020/7/13 21:59:44
我真傻,真的。。。
共3 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in .06189 s, 3 queries.