以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  仿造示例写了一个小程序。麻烦帮忙看看指导一下。谢谢。  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=147222)

--  作者:lfiwhr
--  发布时间:2017/1/22 15:42:22
--  仿造示例写了一个小程序。麻烦帮忙看看指导一下。谢谢。

//适用模式:"不走完一根K线以后"

/*

目的:小时线卖后15分钟线买回。每5秒钟读取K线现价(CLOSE),小时线5周期均线下穿10周期均线且跌幅大于1%卖出一半持仓,同上且跌幅大于2%卖出所有持仓。监控若15分钟线5周期均线上穿10周期均线且当前价在10周期线以上1%则市价开仓用1/4资金买入。

*/

//中间变量

MA5_60M:=STKINDI(\'\',\'MA(5)\', 0,5);//当前品种小时线5周期均线

MA10_60M:=STKINDI(\'\',\'MA(5)\', 0,5);//当前品种小时线10周期均线

MA5_15M:=STKINDI(\'\',\'MA(5)\', 0,3);//当前品种15分钟线5周期均线

MA10_15M:=STKINDI(\'\',\'MA(10)\', 0,3);// 当前品种15分钟线10周期均线

//交易条件

//15分钟线5周期均线上穿10周期均线且当前价在10周期线以上1%

开多条件1:=CROSS(MA5_15M, MA10_15M) and CLOSE/ MA10_15M >1.01; 

//小时线10周期均线下穿5周期均线且跌幅大于0.01

平多条件1:=CROSS(MA10_60M, MA5_60M) and DYNAINFO(14)<-0.01;

//小时线10周期均线下穿5周期均线且跌幅大于0.02

平多条件2:=CROSS(MA10_60M, MA5_60M) and DYNAINFO(14)<-0.02;

 

//交易系统

If 开多条件1 then

Begin

BUY(1,ASSET/4,MARKET); //1/4资金市价开仓买入

PLAYSOUND(1,’C:\\ Weisoft Stock(x64)\\OrderOK.WAV’);

EXIT;//开仓后退出监控

end

 

If 平多条件1 and HOLDING >0 then

Begin

SELL(1,HOLDING/2,MARKET); //卖出一半持仓

PLAYSOUND(1,’C:\\ Weisoft Stock(x64)\\OrderOK.WAV’);

end

else if平多条件2 and HOLDING >0 begin

SELL(1,HOLDING,MARKET); //卖出全部持仓

PLAYSOUND(1,’C:\\ Weisoft Stock(x64)\\OrderOK.WAV’);

end

当前持仓:HOLDING,COLORGRAY,LINETHICK0;

当前资产:ASSET,NOAXIS,COLORGRAY;


--  作者:gxx978
--  发布时间:2017/1/22 15:55:10
--  
函数DYNAINFO(14)只有当前值,无历史值,不建议用在图表程序化中。
--  作者:lfiwhr
--  发布时间:2017/1/22 15:58:51
--  
函数DYNAINFO(14)只有当前值。但是我只做当前K线监测,不做历史回测。这个问题我会注意。请继续对其他问题进行深入批评指正。谢谢。

--  作者:gxx978
--  发布时间:2017/1/22 16:16:53
--  

1,问题1:BUY(1,ASSET/4,MARKET); //1/4资金市价开仓买入

         不能直接用资金代替手数,可以转化为手数BUY(1,asset/4/c,market);

2,问题2:如果你使用DYNAINFO(14),历史上涨跌幅的值都是错的,那你图表上的虚拟持仓holding都是错的,导致你的平仓条件也是有问题的。图表上用涨跌幅需要你公式计算出,不要直接使用DYNAINFO(14)。

[此贴子已经被作者于2017-1-22 16:19:46编辑过]

--  作者:lfiwhr
--  发布时间:2017/1/22 16:21:13
--  
对,我想应该用比较短的周期走完的一根K线收盘价来进行监控。避免使用DYNAINFO(14)。
--  作者:yukizzc
--  发布时间:2017/1/23 9:04:10
--  

不建议使用,图表是根据历史信号计算得来的

你如果历史信号出现闪烁会影响后续的信号产生

涨跌幅您可以用简单的日线收盘价去做判断,可以直接用stkindi引用日线闪(c-ref(c,1))/ref(c,1)