以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 怎样记录不同周期下的开仓价? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=99132) |
-- 作者:菜菜 -- 发布时间:2016/6/19 20:21:32 -- 怎样记录不同周期下的开仓价? 我测试用MACD来程序化交易,图表交易中使用5分、30分和日线3个周期符合条件就开仓、平仓。我想做到每个周期亏损5%止损,也就是要分别记录5分、30分和日线三个周期的开仓价。用ENTERPRICE只能记录最后的开仓价。请教各位这个怎么处理? |
-- 作者:jinzhe -- 发布时间:2016/6/20 10:29:28 -- 是引用其他周期的数据做开仓判断吧?有没有在其他周期开仓? |
-- 作者:菜菜 -- 发布时间:2016/6/20 15:20:04 -- 以下是引用jinzhe在2016-6-20 10:29:28的发言: 感谢您的回答。有的,分别在5分钟、30分和日线,都有开仓。
是引用其他周期的数据做开仓判断吧?有没有在其他周期开仓? |
-- 作者:jinzhe -- 发布时间:2016/6/20 15:27:42 -- 能以一个实际的例子来说明一下当前问题吗? |
-- 作者:菜菜 -- 发布时间:2016/6/21 0:06:44 -- 以下是引用jinzhe在2016-6-20 15:27:42的发言: 能以一个实际的例子来说明一下当前问题吗? RUNMODE:0; //中间变量 INPUT:SS(1,1,10000,1);//定义参数值 //初始化 MACDDAY:=STKINDI(\'\',\'MACD.MACD1\',0,6,0); MACD30:=STKINDI(\'\',\'MACD2.MACD1\',0,4,0); MACD5:=STKINDI(\'\',\'MACD2.MACD1\',0,2,0); //交易条件 GOLDCROSSDAY:=CROSS(MACDDAY,0); DEADCROSSDAY:=CROSS(0,MACDDAY); GOLDCROSS30:=CROSS(MACD30,0); DEADCROSS30:=CROSS(0,MACD30); GOLDCROSS5:=CROSS(MACD5,0); DEADCROSS5:=CROSS(0,MACD5); //交易系统 IF GOLDCROSSDAY THEN //满足开多条件 BUY(1,600*SS,MARKET);//开多单 IF DEADCROSSDAY THEN //满足开空条件 SELL(1,600*SS,MARKET);//开空单 IF GOLDCROSS30 THEN //满足开多条件 BUY(1,300*SS,MARKET);//开多单 IF DEADCROSS30 THEN //满足开空条件 SELL(1,300*SS,MARKET);//开空单 IF GOLDCROSS5 THEN //满足开多条件 BUY(1,100*SS,MARKET);//开多单 IF DEADCROSS5 THEN //满足开空条件 SELL(1,100*SS,MARKET);//开空单 //其他 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY; ------------------------------------------------------------------ 以上为我的MACD突破0轴买卖的代码。分为三个周期独立运行。但是我想分别在以上三个周期(即5分钟、30分钟、日线)设置3%、6%和9%的上损。那就要记录三个周期的开仓价。所以向您请教怎么处理。或者还有没有其它更好的方法?
|
-- 作者:jinzhe -- 发布时间:2016/6/21 9:24:12 -- 复制成3个同样的公式,名字不一样,然后分别运行在3个周期上。 这样就能分别的计算3个周期的不同开仓价了 然后在用stkindi进行引用 |
-- 作者:菜菜 -- 发布时间:2016/6/21 12:39:58 -- 以下是引用jinzhe在2016-6-21 9:24:12的发言: 谢谢!也就是开仓、平仓及止损,都在三个不同的工作中。最后用一个公式来引用三个公式?能根据我以上的代码,给我简单示例一下么?非常感谢!复制成3个同样的公式,名字不一样,然后分别运行在3个周期上。 这样就能分别的计算3个周期的不同开仓价了 然后在用stkindi进行引用 |
-- 作者:jinzhe -- 发布时间:2016/6/21 13:43:07 -- 3个公式分别命名为公式1,2,3。再各加一句代码:ee:enterprice;
比如你第一个公式是5分钟公式,然后要引用其他两个周期的开盘价,那么就要在5分钟公式里面加代码: e1:=stkindi(\'\',\'公式2.ee\',0,4); e2:=stkindi(\'\',\'公式3.ee\',0,6); e1和e2就代表30分钟和日线上的开仓价了,用户就可以在5分钟的公式上来判断3个周期开仓价了 |
-- 作者:菜菜 -- 发布时间:2016/6/21 15:20:31 -- 以下是引用jinzhe在2016-6-21 13:43:07的发言: 非常感谢您!我马上去试试!
3个公式分别命名为公式1,2,3。再各加一句代码:ee:enterprice;
比如你第一个公式是5分钟公式,然后要引用其他两个周期的开盘价,那么就要在5分钟公式里面加代码: e1:=stkindi(\'\',\'公式2.ee\',0,4); e2:=stkindi(\'\',\'公式3.ee\',0,6); e1和e2就代表30分钟和日线上的开仓价了,用户就可以在5分钟的公式上来判断3个周期开仓价了 |