以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 连亏五次停一次 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=156590) |
-- 作者:北极熊 -- 发布时间:2017/8/7 22:33:32 -- 连亏五次停一次 老师好,日内一分钟框架。一日只开仓一次。连续亏损五日停一日开仓。停一日后可以继续开仓然后只要连续五日亏损就停一日。怎么编写?先谢谢了。 |
-- 作者:wenarm -- 发布时间:2017/8/7 22:58:53 -- variable:lossnum=0;// 全局变量,平仓时判断一下是盈利/亏损,若亏损lossnum就加1 cs:=5;//限定一天最多亏损5次
ma5:=ma(5,close); ma20:=ma(20,close);
cond1:=cross(ma5,ma20); cond2:=cross(ma20,ma5); if cond2 and holding>0 then begin sell(1,1,thisclose); if c<enterprice then lossnum:=lossnum+1; end if cond1 and holding=0 and lossnum<cs then buy(1,1,thisclose);
if time=closetime(0) then lossnum:=0;// 商品期货,收盘的同时,lossnum赋值为0 //收盘lossnum不赋值为0,第二天就不再开仓了 |
-- 作者:北极熊 -- 发布时间:2017/8/8 22:22:05 -- 感谢老师及时回复,可能是我没有表达清楚吧。我自己是亏损一次就计数一次的,计数到连续五次亏损就停止开仓一次。由于我一天就开仓一次,所以连续五次亏损就是连亏五天后想停止一天操作。但是停止一天后仍然恢复亏五停一这个循环。现在可以实现亏五停一但是停开仓一天后“又要开仓”怎么编写。 也就是老师说的lossnum最后判断盈亏如亏损就不清零lossnum就可以第二天不开仓了,但是第三天还要让他开仓怎么编写。
|
-- 作者:wenarm -- 发布时间:2017/8/9 8:26:04 -- 计算亏损需要有平仓动作,那么你的平仓是每天也只平1次,还是没有限制,如果是前者,那中间如果其中一天没有平仓动作。要从新记连亏? |
-- 作者:北极熊 -- 发布时间:2017/8/9 8:57:53 -- “计算亏损需要有平仓动作,那么你的平仓是每天也只平1次,还是没有限制,如果是前者,那中间如果其中一天没有平仓动作。要从新记连亏?” 老师好,我是每天开仓一次,平仓一次。我做日内不会其中一天没有平仓动作的。其实我可以编程连亏五次停止一次,但就是不知道如何编写停止一次之后如何继续再开仓。
|
-- 作者:wenarm -- 发布时间:2017/8/9 9:44:54 -- if time=closetime(0) and lossnum=5 then lossnum:=0;//lossnum=5时作为第六天的一个条件,在第六天最后时刻将其初始化为0即可
|
-- 作者:北极熊 -- 发布时间:2017/8/9 15:07:59 -- 老师好,按照if time=closetime(0) and lossnum=5 then lossnum:=0;编写。程序就会在连亏第五次的当天收盘时清零了lossnum,这样第六天还会开仓的,没有能够实现连亏五次停一次的目的。 老师说:“lossnum=5时作为第六天的一个条件,在第六天最后时刻将其初始化为0即可”。我就是在编程中不能判断出这个第六天...... |
-- 作者:wenarm -- 发布时间:2017/8/9 15:35:45 -- 看下这个逻辑 variable:flag_num=0;//作为记录亏损5次后经过的天数。
if date<>ref(date,1) and lossnum=5 then flag_num:=flag_num+1;//开盘第一根并且lossnum=5时,开始启动记录flag_num if date<>ref(date,1) and flag_num=2 then begin lossnum:=0; flag_num:=0;
end [此贴子已经被作者于2017/8/9 15:36:01编辑过]
|
-- 作者:北极熊 -- 发布时间:2017/8/9 21:58:13 -- 向wenarm老师致敬!!在老师的帮助下已经解决了。
|