以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  分时图  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=145464)

--  作者:程序学习者
--  发布时间:2016/12/29 9:48:43
--  分时图
这个是论坛里的老师写的,是对分时图上穿做多,下穿做空的策略?
我想做一些改进,这个程序如何改?
比方说:以一次上穿和一次下穿为总次一次,那么当天如果出现三次的。就停止开仓。或者说全部平仓。
同时,第一次上下穿越结算做,开仓为1手,那么第二次平仓之后再次开仓的仓位为2手,第三次越穿平仓之后再开仓的
仓位是4手;这样的交易策略如何写。

n1:=todaybar;
dm:=4-INTPART(LOG(C));
jsj:=ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm);
cc:=c;
if cross(cc,jsj) then begin
  
   buy(holding=0,1,marketr);
end
 
if cross(jsj,cc) then begin
      buyshort(holding=0,1,marketr);
end
 
if c<jsj-5 then sell(1,0,marketr);
if c>jsj+5 then sellshort(1,0,marketr);
 
if time0>=timetot0(closetime(0))-5*60 then begin
   sell(1,0,marketr);
   sellshort(1,0,marketr);
end
 
 

--  作者:jinzhe
--  发布时间:2016/12/29 9:52:28
--  
variable:ss=1;
variable:n=0;
if todaybar=1 then ss:=1;
if todaybar=1 then n:=0;
n1:=todaybar;
dm:=4-INTPART(LOG(C));
jsj:=ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm);
cc:=c;
if cross(cc,jsj) or cross(jsj,cc) then n:=n+1;
if cross(n=4,0.5) then ss:=2;
if cross(n=6,0.5) then ss:=3;
if cross(cc,jsj) then begin
  
   buy(holding=0,ss,marketr);
end
 
if cross(jsj,cc) then begin
      buyshort(holding=0,ss,marketr);
end
 
if c<jsj-5 then sell(1,0,marketr);
if c>jsj+5 then sellshort(1,0,marketr);
 
if time0>=timetot0(closetime(0))-5*60 then begin
   sell(1,0,marketr);
   sellshort(1,0,marketr);
end

--  作者:程序学习者
--  发布时间:2016/12/29 9:53:24
--  


图片点击可在新窗口打开查看此主题相关图片如下:1111111.jpg
图片点击可在新窗口打开查看

 

昨天对八个品种进行了测试,发现一个问题?

就是有出现连续在一个品种上多头开仓了两次,所以在平仓上出现2手。理论上应该不会出现2手啊!

因为上穿一次开仓一手,再次上穿前要先下穿。而下穿后就要先平掉多头,再开空头。这样分析理论

上不可能会出现2手。这个出现2手是如何产生的。


--  作者:jinzhe
--  发布时间:2016/12/29 9:57:21
--  
在另外的帖子里面说过,是信号闪烁
--  作者:程序学习者
--  发布时间:2016/12/30 10:15:33
--  
您好!这个程序昨天测试我发现还有个问题?
就是都是开空和平空的数据。
也就是说当行情向下穿时,开了空仓开仓,当行情反过来上穿时就会平掉空头仓位。但没有
反过来进行多头开仓。麻烦老师帮我看看!
以下是我开仓的程序数据:
(另外老师给我的新的程序我还没有试,这是最早的程序!谢谢!)

序号    品种名称         公式名称    下单时间             类型    交易量    价格     滑点  
1       MA05 甲醇1705    分时图      16/12/29 09:04:59    开空    1         2846     0     
4       MA05 甲醇1705    分时图      16/12/29 09:07:58    平空    1         2854     0     
17      MA05 甲醇1705    分时图      16/12/29 10:02:59    开空    1         2849     0     
26      MA05 甲醇1705    分时图      16/12/29 10:35:58    平空    1         2857     0     
31      MA05 甲醇1705    分时图      16/12/29 14:57:57    开空    1         2855     0     
2       RU05 橡胶1705    分时图      16/12/29 09:05:00    开空    1         17740    0     
3       RU05 橡胶1705    分时图      16/12/29 09:05:00    开空    1         17740    0     
5       RU05 橡胶1705    分时图      16/12/29 09:11:00    平空    2         17835    0     
6       RU05 橡胶1705    分时图      16/12/29 09:11:00    平空    2         0        0     
7       CF05 棉花1705    分时图      16/12/29 09:11:02    开空    1         14840    0     
8       CF05 棉花1705    分时图      16/12/29 09:12:01    平空    1         14850    0     
9       CF05 棉花1705    分时图      16/12/29 09:13:02    开空    1         14840    0     
10      CF05 棉花1705    分时图      16/12/29 09:14:01    平空    1         14855    1     
11      CF05 棉花1705    分时图      16/12/29 09:18:00    开空    1         14840    0     
12      RU05 橡胶1705    分时图      16/12/29 09:18:01    开空    1         17795    1     
13      RU05 橡胶1705    分时图      16/12/29 09:18:01    开空    1         17795    1     
14      RU05 橡胶1705    分时图      16/12/29 09:20:00    平空    2         17850    0     
15      RU05 橡胶1705    分时图      16/12/29 09:20:00    平空    2         0        0     
16      CF05 棉花1705    分时图      16/12/29 09:21:04    平空    1         14855    1     

18      RU05 橡胶1705    分时图      16/12/29 10:04:00    开空    1         17805    0     
19      RU05 橡胶1705    分时图      16/12/29 10:04:00    开空    1         17805    0     
20      RM05 菜粕1705    分时图      16/12/29 10:05:59    开空    1         2327     0     
21      RM05 菜粕1705    分时图      16/12/29 10:05:59    开空    1         2327     0     
22      RU05 橡胶1705    分时图      16/12/29 10:30:01    平空    2         17855    0     
23      RU05 橡胶1705    分时图      16/12/29 10:30:01    平空    2         0        0     
24      RM05 菜粕1705    分时图      16/12/29 10:30:59    平空    2         2335     1     
25      RM05 菜粕1705    分时图      16/12/29 10:30:59    平空    2         0        0     

27      I05 矿石1705     分时图      16/12/29 11:16:00    开空    1         562.0    0     
28      I05 矿石1705     分时图      16/12/29 11:23:59    平空    1         569.0    1     
29      FG05 玻璃1705    分时图      16/12/29 14:10:58    开空    1         1252     1     
30      FG05 玻璃1705    分时图      16/12/29 14:53:58    平空    1         1260     1     
32      FG05 玻璃1705    分时图      16/12/29 14:58:58    开空    1         1253     1     

 
n1:=todaybar;
dm:=4-INTPART(LOG(C));
jsj:=ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm);
cc:=c;
if cross(cc,jsj) then begin
  
   buy(holding=0,1,marketr);
end
 
if cross(jsj,cc) then begin
      buyshort(holding=0,1,marketr);
end
 
if c<jsj-5 then sell(1,0,marketr);
if c>jsj+5 then sellshort(1,0,marketr);
 
if time0>=timetot0(closetime(0))-5*60 then begin
   sell(1,0,marketr);
   sellshort(1,0,marketr);
end

 

 

 


--  作者:jinzhe
--  发布时间:2016/12/30 10:23:15
--  
指出上面那一堆交易里面哪个是你所说的有问题的
--  作者:程序学习者
--  发布时间:2016/12/30 10:43:42
--  


图片点击可在新窗口打开查看此主题相关图片如下:ru.png
图片点击可在新窗口打开查看
可能是我的表达能力问题?老师您看一下图也许会清楚些?

RU1705昨天测试,都是开空的信号,但分时价上穿到结果价时,只是平了空头的单子。

没有反过来开多头的单子。我的意思是,上穿时,如果有空头单平了,反过来做多;

下穿时,如果有多头的单子平了,反过来做空。这样一来,只要有一次穿越,行情会一直

动态交易,直到收盘平仓。

 

2       RU05 橡胶1705    分时图      16/12/29 09:05:00    开空    1         17740    0       614833
3       RU05 橡胶1705    分时图      16/12/29 09:05:00    开空    1         17740    0       614833
5       RU05 橡胶1705    分时图      16/12/29 09:11:00    平空    2         17835    0       614833
6       RU05 橡胶1705    分时图      16/12/29 09:11:00    平空    2         0        0      
12      RU05 橡胶1705    分时图      16/12/29 09:18:01    开空    1         17795    1       614833
13      RU05 橡胶1705    分时图      16/12/29 09:18:01    开空    1         17795    1       614833
14      RU05 橡胶1705    分时图      16/12/29 09:20:00    平空    2         17850    0       614833
15      RU05 橡胶1705    分时图      16/12/29 09:20:00    平空    2         0        0      
18      RU05 橡胶1705    分时图      16/12/29 10:04:00    开空    1         17805    0       614833
19      RU05 橡胶1705    分时图      16/12/29 10:04:00    开空    1         17805    0       614833
22      RU05 橡胶1705    分时图      16/12/29 10:30:01    平空    2         17855    0       614833
23      RU05 橡胶1705    分时图      16/12/29 10:30:01    平空    2         0        0      


--  作者:程序学习者
--  发布时间:2016/12/30 10:44:37
--  

图片点击可在新窗口打开查看此主题相关图片如下:1111.jpg
图片点击可在新窗口打开查看

--  作者:jinzhe
--  发布时间:2016/12/30 10:56:31
--  
variable:ss=1;
variable:n=0;
if todaybar=1 then ss:=1;
if todaybar=1 then n:=0;
n1:=todaybar;
dm:=4-INTPART(LOG(C));
jsj:=ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm);
cc:=c;
if cross(cc,jsj) or cross(jsj,cc) then n:=n+1;
if cross(n=4,0.5) then ss:=2;
if cross(n=6,0.5) then ss:=3;
if cross(cc,jsj) then begin
  sellshort(1,0,marketr);
   buy(holding=0,ss,marketr);
end
 
if cross(jsj,cc) then begin
      sell(1,0,marketr);
      buyshort(holding=0,ss,marketr);
end
 
 
 
if time0>=timetot0(closetime(0))-5*60 then begin
   sell(1,0,marketr);
   sellshort(1,0,marketr);
end

--  作者:程序学习者
--  发布时间:2016/12/30 11:02:22
--  

好的,谢谢您,我测试一下,如有问题再请教?