以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4)
---- 关于 闪灵交易法 的变换问题! (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=71921)
|
-- 作者:loogsky
-- 发布时间:2014/11/12 17:03:06
-- 关于 闪灵交易法 的变换问题!
问题1: VARIABLE:该笔盈亏:=0; 模拟持仓:=0, 下划线处的分号是不是应该换成逗号?问题2:如果把原版变换成 闪灵--均线交易法,如下变换怎么没有交易信号出现?要怎么实现均线一次交易亏损后,真实交易成交? LC := REF(CLOSE,1); RSI:=SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;//RSI指标默认N1为9 9日收盘价指数平均:REF(EMA(CLOSE,9),1); 19日最高价收盘价平均:REF(EMA(HIGH,19),1); 20日高点:=REF(HHV(H,20),1); 20日低点:=REF(LLV(L,20),1); 手数:=SS; //交易条件 开多条件:=9日收盘价指数平均>=19日最高价收盘价平均 AND REF(RSI,1)<70; 开空条件:=9日收盘价指数平均<19日最高价收盘价平均 AND REF(RSI,1)>30; 平多条件:=C<20日低点; 平空条件:=C>=20日高点; || || || || MA1:MA(Close,A); MA2:MA(Close,B);
手数:=SS; //交易条件 开多条件:=CROSS(MA1,MA2); 开空条件:=CROSS(MA2,MA1); 平多条件:=CROSS(MA2,MA1);
平空条件:=CROSS(MA1,MA2);
以上转换其他内容没有变动,A、B已经做了定义,编译无误。
哪位大师帮忙解决下问题。 要怎么实现均线一次交易亏损后,真实交易成交?
[此贴子已经被作者于2014/11/12 17:04:10编辑过]
|
-- 作者:jinzhe
-- 发布时间:2014/11/12 17:13:17
--
VARIABLE:该笔盈亏=0,模拟持仓=0,模拟开仓价=0,模拟平仓价=0,真实系统下单开关=0;
第一句改成这样就有信号
|
-- 作者:loogsky
-- 发布时间:2014/11/13 13:46:36
--
这个我早就试过了,还是没信号。
我的理解是 我这个信号是连续的信号,直接反手的,所以等那个虚拟的信号计算过后,实际的信号已经过去了,所以它一直没有信号,不知道是不是这个原因。
|
-- 作者:jinzhe
-- 发布时间:2014/11/13 13:48:58
--
这样改了以后k线图上是有信号的,你指的没信号是指k线图没信号,还是不下单?
|
-- 作者:loogsky
-- 发布时间:2014/11/13 13:58:45
--
没信号
|
-- 作者:jinzhe
-- 发布时间:2014/11/13 14:02:53
--
INPUT:N1(9,1,100,1),SS(1,1,100); VARIABLE:该笔盈亏=0,模拟持仓=0,模拟开仓价=0,模拟平仓价=0,真实系统下单开关=0;
手数:=SS;
//交易条件 MA1:MA(Close,A);
MA2:MA(Close,B);
开多条件:=CROSS(MA1,MA2);
开空条件:=CROSS(MA2,MA1);
平多条件:=CROSS(MA2,MA1);
平空条件:=CROSS(MA1,MA2);
IF 开多条件 AND 模拟持仓=0 THEN BEGIN 模拟开仓价:=CLOSE;//记录开仓价 模拟持仓:=1;//模拟持仓为1 END
IF 平多条件 AND 模拟持仓=1 THEN BEGIN 模拟平仓价:=CLOSE;//记录平仓价 该笔盈亏:=模拟平仓价-模拟开仓价;//在模拟交易模块中我们只需计算上一笔交易是赚还是亏,在这里我只计算盈亏最后的点数 模拟持仓:=0;//将全局变量*模拟持仓*初始化为0 IF 该笔盈亏>0 THEN BEGIN 真实系统下单开关:=0;//0代表模拟交易上一笔是赚钱的。 模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0 模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0 END IF 该笔盈亏<=0 THEN BEGIN 真实系统下单开关:=1;//1代表模拟交易上一笔是亏钱的。 模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0 模拟平仓价:=0;//将全局变量*模拟平仓价*初始化为0 END END IF 开空条件 AND 模拟持仓=0 THEN BEGIN 模拟开仓价:=CLOSE;//记录开仓价 模拟持仓:=-1;//模拟持仓为-1 END
IF 平空条件 AND 模拟持仓=-1 THEN BEGIN 模拟平仓价:=CLOSE;//记录平仓价 该笔盈亏:=模拟开仓价-模拟平仓价;//在模拟交易模块中我们只需计算上一笔交易是赚还是亏,在这里我只计算盈亏最后的点数 模拟持仓:=0;//将全局变量*模拟持仓*初始化为0 IF 该笔盈亏>0 THEN BEGIN 真实系统下单开关:=0;//0代表模拟交易上一笔是赚钱的。 模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0 模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0 END IF 该笔盈亏<=0 THEN BEGIN 真实系统下单开关:=1;//1代表模拟交易上一笔是亏钱的。 模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0 模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0 END END //真实下单模块 平空:SELLSHORT(平空条件 AND HOLDING<0,手数,MARKET); 平多:SELL(平多条件 AND HOLDING>0,手数,MARKET); 开多:BUY(开多条件 AND 真实系统下单开关=1 AND HOLDING=0,手数,MARKET); 开空:BUYSHORT(开空条件 AND 真实系统下单开关=1 AND HOLDING=0,手数,MARKET);
此主题相关图片如下:1.png

|
-- 作者:loogsky
-- 发布时间:2014/11/13 14:26:42
--
嗯,我再去试试。
|
-- 作者:loogsky
-- 发布时间:2014/11/13 14:28:03
--
居然有信号了,谢谢啊,高手!
|