具体点位的程序化编写 [文华财经]
-
咨询内容:
老师好,可否帮助设计一个很简单的程序,做的是香港的恒生指数,从早晨 9:15开始到下午16:30 结束,不做夜盘。 大概这样做: 看秒钟的K先,以早晨9:30分0秒0分的开盘价为基准点。当行情上升到10个点,买入一手(争取正好在第10个点的位置,而不是在“附近”,看能否做到,如做不到也没关系),如果亏15个点则卖出并反手做一手(也是,争取在正好亏15个点的时候做空反手,而不是附近,争取一下)。 如果行情是跌落,也一样,跌到10个点,卖出一手,然后,如果亏损15个点,反手买入,这样,如此循环第做下去,指导行情结束。 另外,可否再加一个平仓条件,就是当盈利100个点的时候,也是平仓,同时开仓(同方向)一手,重复以前的,这新的一手,如果亏15个点则反手,这样,行情会在一开始的时候有买卖,然后在涨、跌100个点的时候也有买卖,都是亏损15个点平仓,否则走到收盘的时候。 谢谢老师,这其实是两个程序,放在一起了,好在都很简单。
来源:程序化99
-
文华技术人员:
思路需要核实:
1.盈利100点平仓,并同向开仓一手,是指比如多头情况下盈利100点卖平后再买开一手?
这个是无法同时做到的,只能做到同时反向开仓,您调整一下思路,这里先按同时反向开仓给您编写
2.走到收盘,收盘前是否清仓?如需清仓需要收盘前多长时间清仓?
这里先按照不清仓给您编写
3.刚好10点或15点,这样的条件可以编写(如下形式),但是条件较难满足,您了解下
参考:
OO:=VALUEWHEN(TIME=093000,O); AA:=TIME>093000&&TIME<163000; C=OO+10*MINPRICE&&COUNTSIG(BK,BARPOS)=0&&AA,BK(1); C=OO-10*MINPRICE&&COUNTSIG(SK,BARPOS)=0&&AA,SK(1); (C=BKPRICE-15*MINPRICE||C=BKPRICE+100*MINPRICE)&&BKVOL>0&&AA,SPK(1); (C=SKPRICE+15*MINPRICE||C=SKPRICE-100*MINPRICE)&&SKVOL>0&&AA,BPK(1);
来源: WWW.CXH99.COM
-
文华客服:
老师您好,继续这个问题,我有几个问题。 您编的水平确实很高,加上我是菜鸟,还是消化了一回儿。 我的问题有三个:
第一,这个模型,如果我改为过滤模型(以为自始至终我都是一手在操作的),就是把诸如BK(1) 改为BK, spk(1) 也改为spk,最后加上AUTOFILL;, 这样,理论上应该测试的结果和没改之前您的模型结果是一样的,因为按照您的模型,它也是只有一手操作,没有两手或以上的情形,为什么改成过滤模型了之后,测试的结果会有很大的不同呢? 我应该相信哪一个? 第二,您在上面问的很对,我是要当天平仓的,就是在16:30日盘接受的时候平仓,我自己直接加了一个 TIME>162959 CLOSEOUT; 可是,为什么我加了这个,语法上没有错,但执行的时候,60天周期只执行了两三天,这是为什么? 您可否在这基础上,直接帮我改一下,改成不论如何做,最后16:30分平仓? 第三, 您所编的程序,就是涨跌100点,是动态的平仓且反手的,就是说比如一开始是20000点,从20010点开始买入,如果没有跌,到20110就平仓卖出反手,经过几次震荡(每亏15个点反手一次),到20200还会继续平仓卖出反手(就是盈利100点时候),而我的意思是,如果过了20100点还继续涨,就不再每一百点平仓反手了,而是一直做到当天结束。 (下跌也是一个意思!),也就意味着,我不是要求动态的每波动100个点(其实是盈利100点)都平仓,而是,比如20000是基准点,只有在21100 和19890 的时候 会作反手,否则就等到日盘结束就平仓了。 您可否帮我这样改一下,我估计,这样改似乎可以,就是 (C=BKPRICE-15*MINPRICE||C=BKPRICE+100*MINPRICE)&&BKVOL>0&&AA,SPK(1);(C=SKPRICE+15*MINPRICE||C=SKPRICE-100*MINPRICE)&&SKVOL>0&&AA,BPK(1)
改成(C=BKPRICE-15*MINPRICE||C=OO+100*MINPRICE)&&BKVOL>0&&AA,SPK(1);(C=SKPRICE+15*MINPRICE||C=OO-100*MINPRICE)&&SKVOL>0&&AA,BPK(1);
就是把BKPRICE和SKPRICE 都改成OO, 您看对吗? 但是我还有一个要求,就是可否设一个变量,让它记录下来分别在基准价格(比如一开始的20000点)附近上下开平仓了多少回,做个记录,然后分别也在100点涨和跌之后,每一回的震荡(开仓,平仓)次数又有多少回,把这三个数字给做个动态的记录,您看可否? (三个记录分别是: 从20010到19990直接,来回走了多少回,已经从19890到19900, 和 20100到20110之间走了多少次,做个记录 ) ,您看可以吗? 谢谢了,说起来很啰嗦,老师做起来应该是几句话的事情。 感谢! -
网友回复:
第一,过滤模型和非过滤模型呈现的结果都是准确
存在差异是因为过滤模型存在信号过滤机制,开仓信号的下个信号必须是平仓信号
而非过滤模型属于加仓的思路,开仓信号的下个信号可能还是开仓信号,所以就导致了两种模型的信号记录存在差异
-------
第二,这是因为时间设置为TIME>162959,只有当163000时的K线有数据时才有可能按照您的思路准确平仓
否则如果163000这一秒没有数据,那么就不会触发清仓指令,或者是在夜盘时段执行清仓指令也是有可能的
-------
第三,您的编写方式不是十分准确,您是指超过100点盈利后就一直持有直到尾盘平仓?
另外,您所说的记录三个数值,后面两个是指记录盈利100点后的震荡次数?
但是如果盈利超过100点一直持有到尾盘平仓的话期间是不会有信号震荡的,暂时先给您编写盈利100点震荡次数
根据您的思路,这样编写试试看
OO:VALUEWHEN(TIME=093000,O);AA:=TIME>093000&&TIME<162930;C=OO+10*MINPRICE&&COUNTSIG(BK,BARPOS)=0&&AA,BK(1);C=OO-10*MINPRICE&&COUNTSIG(SK,BARPOS)=0&&AA,SK(1);C=BKPRICE-15*MINPRICE&&BKVOL>0&&AA&&COUNT(C>BKPRICE+100*MINPRICE,BARSBK)=0,SPK(1);C=SKPRICE+15*MINPRICE&&SKVOL>0&&AA&&COUNT(C<SKPRICE-100*MINPRICE,BARSSK)=0,BPK(1);BKVOL>0&&AA&&COUNT(C>BKPRICE+100*MINPRICE,BARSBK)=1,SPK(1);SKVOL>0&&AA&&COUNT(C<SKPRICE-100*MINPRICE,BARSSK)=1,BPK(1);CLOSESEC<=30,CLOSEOUT;AA:COUNTSIG(BPK,BARSLAST(TIME=093000)+1)+COUNTSIG(SPK,BARSLAST(TIME=093000)+1),NODRAW;//仅在盈利100点前为准确数值 -
网友回复:
老师好,关于您上面回答的第二个问题还是不是很清楚: 为什么您编的程序好好的,但是我加上在当天期末全部平仓,就60天内只执行两天,我就十分的疑惑。这样吧,还是用您编的这个程序:
OO:=VALUEWHEN(TIME=093000,O);AA:=TIME>093000&&TIME<163000;C=OO+10*MINPRICE&&COUNTSIG(BK,BARPOS)=0&&AA,BK(1);C=OO-10*MINPRICE&&COUNTSIG(SK,BARPOS)=0&&AA,SK(1);(C=BKPRICE-15*MINPRICE||C=BKPRICE+100*MINPRICE)&&BKVOL>0&&AA,SPK(1);(C=SKPRICE+15*MINPRICE||C=SKPRICE-100*MINPRICE)&&SKVOL>0&&AA,BPK(1);
但是,把AA的条件改成: AA:=AA:=TIME>093000&&TIME<162600; //就是,在每天下午16点26分前执行该程序。然后加上一个
TIME>162600, CLOSEOUT; 或者 BP(SKVOL); SP(BKVOL); 这样的程序应该可以运行了吧? 可是我在60天周期运行时,还是只执行两三天,不知道为什么,您能够给我一个完整的程序吗? 谢谢老师! 完整的程序就是在16:26分 全部平仓。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容