以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 图表模型转后台模型的问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=100299) |
-- 作者:never827 -- 发布时间:2016/7/7 11:07:21 -- 图表模型转后台模型的问题 //输入参数 INPUT:SS(1,1,10000,1); 手数:=SS; INPUT:周期参数(22,10,50,1); INPUT:过滤参数(3,1,5,1); //交易条件 多空线:=50-((100 * ( HHV(HIGH,周期参数) - CLOSE))/ (HHV(HIGH,周期参数) - LLV(LOW,周期参数))); 做多线:=45; 做空线:=-45; //引入其他公式 BBI1:=STKINDI(\'if13\',\'趋势指标.yy1\',0,6); BBI2:=STKINDI(\'if13\',\'趋势指标.yy2\',0,6); BBI3:=STKINDI(\'if13\',\'趋势指标.yy3\',0,6); bbi4:=STKINDI(\'if13\',\'趋势指标.yy4\',0,6); B1:=STKINDI(\'if13\',\'yyy.bbi1\',0,6); B2:=STKINDI(\'if13\',\'yyy.bbi2\',0,6); //时间参数 开仓时间:=TIME>=091500 AND TIME<151300; 平仓时间:=TIME>151300; //交易条件 开多平空条件1:=OPEN>=REF(HHV(H,22),1)+0.2 AND 开仓时间; 开多平空条件2:=HIGH>=REF(HHV(H,22),1)+0.2 AND 开仓时间; 开空平多条件1:=OPEN<=REF(LLV(L,22),1)-0.2 AND 开仓时间; 开空平多条件2:=LOW<=REF(LLV(L,22),1)-0.2 AND 开仓时间; //平仓 //////////////////////////////////// IF 平仓时间 AND HOLDING>0 THEN BEGIN 收盘平多:SELL(1,手数,LIMITR,O); TSELL(1,手数,MKT); END
IF 平仓时间 AND HOLDING<0 THEN BEGIN
收盘平空:sellshort(1,手数,LIMITR,O);
TSELLshort(1,手数,MKT);
END
特殊参数1:=REF(HHV(H,22),1)+0.2;
IF OPEN>=REF(HHV(H,22),1)+0.2 AND HOLDING<0 AND REF(HOLDING,1)<0 THEN BEGIN
平空1:sellshort(1,手数,LIMITR,max(OPEN,特殊参数1));
Tsellshort(1,手数,MKT);
END
特殊参数2:=REF(HHV(H,22),1)+0.2;
IF HIGH>=REF(HHV(H,22),1)+0.2 AND HOLDING<0 AND REF(HOLDING,1)<0 THEN BEGIN
平空2:sellshort(1,手数,LIMITR,特殊参数2);
Tsellshort(1,手数,MKT);
END
/////////////////////////////////////////////////////////////
特殊参数3:=REF(LLV(L,22),1)-0.2;
IF OPEN<=REF(LLV(L,22),1)-0.2 AND HOLDING>0 AND REF(HOLDING,1)>0 THEN BEGIN
平多1:sell(1,手数,LIMITR,min(OPEN,特殊参数3));
Tsell(1,手数,MKT);
END
特殊参数4:=REF(LLV(L,22),1)-0.2;
IF LOW<=REF(LLV(L,22),1)-0.2 AND HOLDING>0 AND REF(HOLDING,1)>0 THEN BEGIN
平多2:sell(1,手数,LIMITR,特殊参数4);
Tsell(1,手数,MKT);
END
//开仓
////////////////////////////////////////////////////////////
特殊参数5:=REF(LLV(L,22),1)-0.2;
IF 开空平多条件1 AND HOLDING=0 AND REF(COUNT(开空平多条件1,10)>=2,1) AND (BBI1>BBI2 AND BBI2>BBI3 or bbi1<bbi2 and bbi2>bbi3 and bbi3>bbi4) AND REF(COUNT((多空线 < 做空线),10)>=过滤参数,1) THEN BEGIN
开空1:buyshort(1,手数,LIMITR,min(OPEN,特殊参数5)),IGNORECHECKPRICE;
Tbuyshort(1,手数,MKT);
END
特殊参数6:=REF(LLV(L,22),1)-0.2;
IF 开空平多条件2 AND HOLDING=0 AND REF(COUNT(开空平多条件2,10)>=2,1)AND (BBI1>BBI2 AND BBI2>BBI3 or bbi1<bbi2 and bbi2>bbi3 and bbi3>bbi4) AND REF(COUNT((多空线 < 做空线),10)>=过滤参数,1) THEN BEGIN
开空2:buyshort(1,手数,LIMITR,特殊参数6),IGNORECHECKPRICE;
Tbuyshort(1,手数,MKT); END
特殊参数7:=REF(HHV(H,22),1)+0.2;
IF 开多平空条件1 AND HOLDING=0 AND REF(COUNT(开多平空条件1,10)>=3,1)AND BBI1>BBI2 AND BBI2>BBI3 and b1<b2 AND REF(COUNT((多空线 > 做多线),10)>=过滤参数,1) THEN BEGIN
开多1:buy(1,手数,LIMITR,max(OPEN,特殊参数7)),IGNORECHECKPRICE;
Tbuy(1,手数,MKT); END 特殊参数8:=REF(HHV(H,22),1)+0.2;
IF 开多平空条件2 AND HOLDING=0 AND REF(COUNT(开多平空条件2,10)>=3,1)AND BBI1>BBI2 AND BBI2>BBI3 and b1<b2 AND REF(COUNT((多空线 > 做多线),10)>=过滤参数,1) THEN BEGIN
开多2:buy(1,手数,LIMITR,特殊参数8),IGNORECHECKPRICE;
Tbuy(1,手数,MKT);
END
特殊参数7:=REF(HHV(H,22),1)+0.2;
IF 开多平空条件1 AND HOLDING=0 AND BBI1>BBI2 AND BBI2<BBI3 AND B1>B2 AND REF(COUNT(开多平空条件1,10)>=3,1) AND REF(COUNT((多空线 > 做多线),10)>=过滤参数,1) THEN BEGIN
开多3:buy(1,手数,LIMITR,max(OPEN,特殊参数7)),IGNORECHECKPRICE;
Tbuy(1,手数,MKT);
END 特殊参数8:=REF(HHV(H,22),1)+0.2;
IF 开多平空条件2 AND HOLDING=0 AND BBI1>BBI2 AND BBI2<BBI3 AND B1>B2 AND REF(COUNT(开多平空条件2,10)>=3,1) AND REF(COUNT((多空线 > 做多线),10)>=过滤参数,1) THEN BEGIN
开多4:buy(1,手数,LIMITR,特殊参数8),IGNORECHECKPRICE;
Tbuy(1,手数,MKT);
END
|
-- 作者:jinzhe -- 发布时间:2016/7/7 11:08:16 -- 请问用户碰到啥问题了? |
-- 作者:never827 -- 发布时间:2016/7/7 11:10:49 -- IF 平仓时间 AND HOLDING<0 THEN BEGIN 收盘平空:sellshort(1,手数,LIMITR,O); TSELLshort(1,手数,MKT); END 这个系统是几年前别人帮我把图表转后台,我在后台也使用过,可以用,我想问上面代码为什么不是tholding<0 我还想问下我现在编的图标系统照着上面的抄,可以实现后台吗?
|
-- 作者:jinzhe -- 发布时间:2016/7/7 11:18:26 -- 这代码是用来按照图表的信号在后台下单的意思。 如果你只想转后台不想按照图表信号下单,那么就不用在后台代码里面加上图表语句,然后用tholding等一系列后台函数写代码 |
-- 作者:never827 -- 发布时间:2016/7/7 11:18:49 -- 问下老师,我现在把图表模型编好了,想变成后台模型,把交易系统直接照着上面的抄可以实现后台程序化交易吗? |
-- 作者:never827 -- 发布时间:2016/7/7 11:24:15 -- IF 平仓时间 AND HOLDING<0 THEN BEGIN 收盘平空:sellshort(1,手数,LIMITR,O); TSELLshort(1,手数,MKT); END 意思就是说,这样是可以完成后台交易的,即使不锁定图表界面,我可以这样理解吗? IF 平仓时间 AND THOLDING<0 THEN BEGIN TSELLshort(1,手数,MKT); END 不想在图表显示,这样就可以了是吗? |
-- 作者:jinzhe -- 发布时间:2016/7/7 11:26:50 -- 以下是引用never827在2016-7-7 11:24:15的发言:
IF 平仓时间 AND HOLDING<0 THEN BEGIN
收盘平空:sellshort(1,手数,LIMITR,O);
TSELLshort(1,手数,MKT);
END
意思就是说,这样是可以完成后台交易的,即使不锁定图表界面,我可以这样理解吗?
IF 平仓时间 AND THOLDING<0 THEN BEGIN
TSELLshort(1,手数,MKT);
END
不想在图表显示,这样就可以了是吗? 是的,完全转后台就是这样,后台代码里面不再有图表语句了 |
-- 作者:never827 -- 发布时间:2016/7/7 11:28:13 -- 图表信号,即使我当时不在那个出信号的图标上,这个图表信号也会出现,我不照着图表buy,照着图表信号tbuy,一样可以实现后台程序化交易,而且还方便测试,可以这么理解吗?老师。 |
-- 作者:jinzhe -- 发布时间:2016/7/7 11:30:22 -- 不懂你想要讲什么 |
-- 作者:never827 -- 发布时间:2016/7/7 11:37:06 -- 我想讲的是 IF 平仓时间 AND HOLDING<0 THEN BEGIN 收盘平空:sellshort(1,手数,LIMITR,O); TSELLshort(1,手数,MKT); END 我把我图表的交易系统就按照这个加,能不能交易的上,就是能不开着,能不能平着,能不能买着,能不能卖着的意思。 |