以文本方式查看主题

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

--  作者:代人发贴
--  发布时间:2021/3/16 10:53:30
--  交易策略编写

                               
此主题相关图片如下:图片1.png
按此在新窗口浏览图片

此主题相关图片如下:图片2.png
按此在新窗口浏览图片

此主题相关图片如下:图片3.png
按此在新窗口浏览图片

此主题相关图片如下:图片4.png
按此在新窗口浏览图片

此主题相关图片如下:图片5.png
按此在新窗口浏览图片

此主题相关图片如下:图片6.png
按此在新窗口浏览图片

一、开仓条件

<!--[if !supportLists]-->1、<!--[endif]-->N小时线上涨大于N点做多        (1小时线开盘价突破+30点做多开仓

<!--[if !supportLists]-->2、<!--[endif]-->N小时线连续出现N根收盘阳线做多(1小时线连续出现3根收盘价阳线做多)成交在第三根的收盘价上

以上为做多开仓条件

 

<!--[if !supportLists]-->3、<!--[endif]-->N小时线下跌大于N点做空        (1小时线开盘价下跌-30点做空开仓

<!--[if !supportLists]-->4、<!--[endif]-->N小时线连续出现N根收盘阴线做空(1小时线连续出现3根收盘价阴线做空)成交在第三根的收盘价上

以上为做空公开仓条件

 

13、是突破和下跌开仓。  24、是3根收盘线开仓 ,(一次只开仓一单,也只持仓一单,优先执行13的开仓条件,不能出现持仓超过2单的情况。)

 

13的开仓条件举例说明: 1小时线开盘价上涨+30点做多开仓。

 

 

条件总结:一次只开仓一单,也只持有一单,不能同时持有超过两单,不能持有多单再持有空单,也不能持有2个同方向订单。

 

平仓后:要等待下根K线收盘再做判断开仓,不能在当根K线同时开平仓,防止高低位被套。

 

24的开仓条件举例说明: 1小时线连续出现3根收盘阳线做多开仓,最好在第三根收盘价上开仓空单。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<!--[if !supportLists]-->二、<!--[endif]-->平仓条件有4种情况

<!--[if !supportLists]-->1、<!--[endif]-->盈利平仓:开仓后设置移动止损,盈利N点回撤N点自动止盈,

(追踪止损100点启动回撤10点止盈)

下图举例说明该平仓条件

 

 

<!--[if !supportLists]-->2、<!--[endif]-->止损平仓:亏损达到N点时平仓(亏损达到100点平仓)

下图举例说明

 

 

 

 

3、持仓后遇到1小时线开盘价±30点止损平仓:1小时线开盘价上涨或者下跌超过30点时启动止损,

 

 

4、持仓后遇到1小时线连续3根阳线或者3根阴线止损平仓。

 

总结:4种平仓条件,1个移动止盈,3个止损,哪个条件达到就执行哪个条件,冲突时优先3的平仓条件。


--  作者:FireScript
--  发布时间:2021/3/16 11:18:22
--  
  “

N小时线上涨大于N点做多

你这里2个N是一样的数值呢。还是只是想表达这只是2个参数?我看你后面用一小时线举例,但是开仓时候的点数要满足30点。这个点数的N和周期的N到底有没有具体关系,请说明下。
--  作者:飞翔人生
--  发布时间:2021/3/16 11:36:10
--  
运行周期:1小时K线
--  作者:飞翔人生
--  发布时间:2021/3/16 13:18:01
--  [原创]
N是1小时,可以调整的参数,例如可以调整30分钟,   N点突破 例如白银30点突破     镍 300点突破
--  作者:FireScript
--  发布时间:2021/3/16 15:00:21
--  
 设置了多个参数来控制你其实用到的一些数值设置。
 以下代码可以参考使用下。大体上因为和你思路一致,你可以先校对下。我本地也继续测试看下。

INPUT:N(30,1,500,1),ss(1,1,100,1);//N是开仓条件里的点数设置,SS是下单手数
INPUT:M1(100,1,500,1),M2(10,1,500,1);//开仓后盈利M1个点回测M2个点止盈  
INPUT:M3(100,1,500,1);

dcd1:=c>o+N*MINDIFF;//最新价/收盘价 大于开盘价N个点 多头开仓
dcd2:=all(c>o,3);//连续三个周期阳线 多头开仓
开多1:buy(dcd1 and holding=0,ss,marketr);
开多2:buy(dcd2 and holding=0,ss,marketr);


kcd1:=c<o-N*MINDIFF;
kcd2:=all(c<o,3);
开空1:buyshort(kcd1 and holding=0,ss,marketr);
开空2:buyshort(kcd2 and holding=0,ss,marketr);


//开仓后遇到反向开仓条件则止损平仓
if holding>0 and (kcd1 or kcd2) then 多平仓1:sell(holding>0,holding,market);
if holding<0 and (dcd1 or dcd2) then 空平仓1:sellshort(holding>0,holding,market);


//移动止损部分 最高盈利M1点 回撤M2点时候平仓
DTZY:=(HHV(H,ENTERBARS+1)-AVGENTERPRICE)>=M1*MINDIFF and  (HHV(H,ENTERBARS+1)-CLOSE)>=M2*MINDIFF ;//开多以来最大盈利大于M1个点;当前从最高价点位置回落M2个点
KTZY:=(AVGENTERPRICE-LLV(L,ENTERBARS+1))>=M1*MINDIFF and  (CLOSE-LLV(L,ENTERBARS+1))>=M2*MINDIFF;

多平仓2:SELL(DTZY,holding,MARKETr);
空平仓2:SELLSHORT(KTZY,holding,MARKETr);


//亏损平仓。亏损M3点直接平仓

if OPENPROFIT/MULTIPLIER<=-100*MINDIFF then
begin
多平仓3:SELL(1,holding,MARKETr);
空平仓3:SELLSHORT(1,holding,MARKETr);   
end




--  作者:飞翔人生
--  发布时间:2021/3/18 10:02:03
--  
INPUT:N(30,1,500,1),ss(1,1,100,1);//N是开仓条件里的点数设置,SS是下单手数
INPUT:M1(100,1,500,1),M2(10,1,500,1);//开仓后盈利M1个点回测M2个点止盈  
INPUT:M3(100,1,500,1);

dcd1:=c>o+N*MINDIFF;//最新价/收盘价 大于开盘价N个点 多头开仓
dcd2:=all(c>o,3);//连续三个周期阳线 多头开仓
开多1:buy(dcd1 and holding=0,ss,marketr);
开多2:buy(dcd2 and holding=0,ss,marketr);


kcd1:=c<o-N*MINDIFF;
kcd2:=all(c<o,3);
开空1:buyshort(kcd1 and holding=0,ss,marketr);
开空2:buyshort(kcd2 and holding=0,ss,marketr);


//开仓后遇到反向开仓条件则止损平仓
if holding>0 and (kcd1 or kcd2) then 多平仓1:sell(holding>0,holding,market);
if holding<0 and (dcd1 or dcd2) then 空平仓1:sellshort(holding>0,holding,market);


//移动止损部分 最高盈利M1点 回撤M2点时候平仓
DTZY:=(HHV(H,ENTERBARS+1)-AVGENTERPRICE)>=M1*MINDIFF and  (HHV(H,ENTERBARS+1)-CLOSE)>=M2*MINDIFF ;//开多以来最大盈利大于M1个点;当前从最高价点位置回落M2个点
KTZY:=(AVGENTERPRICE-LLV(L,ENTERBARS+1))>=M1*MINDIFF and  (CLOSE-LLV(L,ENTERBARS+1))>=M2*MINDIFF;

多平仓2:SELL(DTZY,holding,MARKETr);
空平仓2:SELLSHORT(KTZY,holding,MARKETr);


//亏损平仓。亏损M3点直接平仓

if OPENPROFIT/MULTIPLIER<=-100*MINDIFF then
begin
多平仓3:SELL(1,holding,MARKETr);
空平仓3:SELLSHORT(1,holding,MARKETr);   
end                                                              代码没有时间周期调整,运行周期是1小时线,  目前默认的好像是日线,请调整下周期N可以做调整任何周期,  目前加载1小时上提示是公式在该周期已被禁用
主题最新回顾(发布时间:2021/3/16 11:36:10)


--  作者:飞翔人生
--  发布时间:2021/3/18 10:06:43
--  
看了下公式在任何周期都可以,只有在1小时上被禁用,不知道是怎么回事


--  作者:yukizzc
--  发布时间:2021/3/18 10:37:17
--  

公式编辑界面,右上角点使用周期

这里禁止周期


--  作者:飞翔人生
--  发布时间:2021/3/18 13:11:41
--  
好了谢谢
--  作者:飞翔人生
--  发布时间:2021/3/23 14:26:18
--  
你好老师,麻烦帮我看下,这个策略写的时候,突破30还是突破30跳,  因为白银是一条一个点,其他品种有一跳5个点的,有一跳10个点的,例如白银,我可以突破30点做多,  但是沪镍一跳是10点,我设置300点突破就对了,如果是按照跳那么沪镍就得设置30跳突破,