以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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个周期开仓价了

非常感谢您!我马上去试试!