以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  交易策略发布专区  (http://222.73.7.161/bbs/list.asp?boardid=10)
----  自动判断主月切换,自动停止交易品种模块。  (http://222.73.7.161/bbs/dispbbs.asp?boardid=10&id=183495)

--  作者:ma-robot
--  发布时间:2020/12/16 19:25:29
--  自动判断主月切换,自动停止交易品种模块。
{策略定义模式}
RUNMODE:0;{运行模式 逐渐}
CLOSEPOSMODE:1;{平仓模式 平老仓}
WARNING_DISABLE:2;{报警处理 编译不警告}

//TEST:SPLITBARS(0)<OPENMINUTES(TIME),noaxis,LINETHICK0;{除权到现在的周期数}
IF  SPLITBARS(0)<OPENMINUTES(TIME) THEN
DRAWTEXTEX( 1,0,20,0,\'/主力移仓日/\'+NUMTOSTR(MINUTE(),0)+\'分/\'+STKNAME+\'/\'+STKLABEL+\'/\'+DYNAINFO(210) +\'/本月\'+NUMTOSTR(MONTH(),0)+\'/主月\'+NUMTOSTR(STRTONUM( STRRIGHT(DYNAINFO(210),2) ),0),COLORYELLOW);{当日主力合约切换提示}

IF  {STKLABEL=\'CU00\' {沪铜策略停止}
{OR STKLABEL=\'AU00\' {黄金策略停止}
{OR STKLABEL=\'SC00\' OR}{原油策略停止}
STKLABEL=\'SA00\' {纯碱策略停止}
OR STKLABEL=\'SH001\'{上证指数策略停止
OR STKLABEL=\'IH13\' {50指数策略停止}
OR STKLABEL=\'AU30\' {商品指数策略停止}
OR STKLABEL=\'AU31\' {金属指数策略停止}
OR STKLABEL=\'AU32\' {能源指数策略停止}
OR STKLABEL=\'AU33\' {化工指数策略停止}
OR STKLABEL=\'AU34\' {农产品指数策略停止}
OR STKLABEL=\'AU35\' {油脂指数策略停止}
OR SPLITBARS(0)<OPENMINUTES(TIME) {当日除权到现在的周期数。主力合约换月停止策略}
OR CALLSTOCK(STKLABEL,VTCLOSE,6,-1)*1.03 < CALLSTOCK(STKLABEL,VTOPEN,6,0) {开盘价差大于3%停止策略}
OR CALLSTOCK(STKLABEL,VTCLOSE,6,-1)*0.97 > CALLSTOCK(STKLABEL,VTOPEN,6,0) {开盘价差大于3%停止策略}
THEN
EXIT; {定制品种策略停止,换月停止,纯碱品种交易模拟盘不支持限制停止}

{主力合约判断异常处理}
//本月:=MONTH(),LINETHICK0;
//主月:=STRTONUM( STRRIGHT(DYNAINFO(210),2) ),LINETHICK0;
IF (OPENPROFIT+NETPROFIT+(CASH(0)+CASH(1))/2)<0 THEN DRAWGBK(1,COLORRGB(255,0,0), COLORRGB(255,255,0),0);
IF (OPENPROFIT+NETPROFIT+(CASH(0)+CASH(1))/2)>0 THEN DRAWGBK(1,COLORRGB(0,255,0), COLORRGB(255,255,0),0);
IF (OPENPROFIT+NETPROFIT+(CASH(0)+CASH(1))/2)>=0 THEN
DRAWTEXTEX( 1,0,20,0,\'/\'+NUMTOSTR(MINUTE(),0)+\'分/\'+STKNAME+\'/\'+STKLABEL+\'/\'+DYNAINFO(210) +\'/本月\'+NUMTOSTR(MONTH(),0)+\'/主月\'+NUMTOSTR(STRTONUM( STRRIGHT(DYNAINFO(210),2) ),0),COLORRED);
ELSE
DRAWTEXTEX( 1,0,20,0,\'/\'+NUMTOSTR(MINUTE(),0)+\'分/\'+STKNAME+\'/\'+STKLABEL+\'/\'+DYNAINFO(210) +\'/本月\'+NUMTOSTR(MONTH(),0)+\'/主月\'+NUMTOSTR(STRTONUM( STRRIGHT(DYNAINFO(210),2) ),0),COLORGREEN);

{品种交易限制}
//IF 本月=主月 THEN EXIT; {如果本月是主月移仓换月停止交易,预留模块}

--  作者:ma-robot
--  发布时间:2020/12/16 19:34:24
--  
以下是引用ma-robot在2020/12/16 19:25:29的发言:
{策略定义模式}
RUNMODE:0;{运行模式 逐渐}
CLOSEPOSMODE:1;{平仓模式 平老仓}
WARNING_DISABLE:2;{报警处理 编译不警告}

//TEST:SPLITBARS(0)<OPENMINUTES(TIME),noaxis,LINETHICK0;{除权到现在的周期数}
IF  SPLITBARS(0)<OPENMINUTES(TIME) THEN
DRAWTEXTEX( 1,0,20,0,\'/主力移仓日/\'+NUMTOSTR(MINUTE(),0)+\'分/\'+STKNAME+\'/\'+STKLABEL+\'/\'+DYNAINFO(210) +\'/本月\'+NUMTOSTR(MONTH(),0)+\'/主月\'+NUMTOSTR(STRTONUM( STRRIGHT(DYNAINFO(210),2) ),0),COLORYELLOW);{当日主力合约切换提示}

IF  {STKLABEL=\'CU00\' {沪铜策略停止}
{OR STKLABEL=\'AU00\' {黄金策略停止}
{OR STKLABEL=\'SC00\' OR}{原油策略停止}
STKLABEL=\'SA00\' {纯碱策略停止}
OR STKLABEL=\'SH001\'{上证指数策略停止
OR STKLABEL=\'IH13\' {50指数策略停止}
OR STKLABEL=\'AU30\' {商品指数策略停止}
OR STKLABEL=\'AU31\' {金属指数策略停止}
OR STKLABEL=\'AU32\' {能源指数策略停止}
OR STKLABEL=\'AU33\' {化工指数策略停止}
OR STKLABEL=\'AU34\' {农产品指数策略停止}
OR STKLABEL=\'AU35\' {油脂指数策略停止}
OR SPLITBARS(0)<OPENMINUTES(TIME) {当日除权到现在的周期数。主力合约换月停止策略}
OR CALLSTOCK(STKLABEL,VTCLOSE,6,-1)*1.03 < CALLSTOCK(STKLABEL,VTOPEN,6,0) {开盘价差大于3%停止策略}
OR CALLSTOCK(STKLABEL,VTCLOSE,6,-1)*0.97 > CALLSTOCK(STKLABEL,VTOPEN,6,0) {开盘价差大于3%停止策略}
THEN
EXIT; {定制品种策略停止,换月停止,纯碱品种交易模拟盘不支持限制停止}

{主力合约判断异常处理}
//本月:=MONTH(),LINETHICK0;
//主月:=STRTONUM( STRRIGHT(DYNAINFO(210),2) ),LINETHICK0;
IF (OPENPROFIT+NETPROFIT+(CASH(0)+CASH(1))/2)<0 THEN DRAWGBK(1,COLORRGB(255,0,0), COLORRGB(255,255,0),0);
IF (OPENPROFIT+NETPROFIT+(CASH(0)+CASH(1))/2)>0 THEN DRAWGBK(1,COLORRGB(0,255,0), COLORRGB(255,255,0),0);
IF (OPENPROFIT+NETPROFIT+(CASH(0)+CASH(1))/2)>=0 THEN
DRAWTEXTEX( 1,0,20,0,\'/\'+NUMTOSTR(MINUTE(),0)+\'分/\'+STKNAME+\'/\'+STKLABEL+\'/\'+DYNAINFO(210) +\'/本月\'+NUMTOSTR(MONTH(),0)+\'/主月\'+NUMTOSTR(STRTONUM( STRRIGHT(DYNAINFO(210),2) ),0),COLORRED);
ELSE
DRAWTEXTEX( 1,0,20,0,\'/\'+NUMTOSTR(MINUTE(),0)+\'分/\'+STKNAME+\'/\'+STKLABEL+\'/\'+DYNAINFO(210) +\'/本月\'+NUMTOSTR(MONTH(),0)+\'/主月\'+NUMTOSTR(STRTONUM( STRRIGHT(DYNAINFO(210),2) ),0),COLORGREEN);

{品种交易限制}
//IF 本月=主月 THEN EXIT; {如果本月是主月移仓换月停止交易,预留模块}
第一个模块在于判断,开盘时有除权数据,出现跳空价格情况下,指标计算会出现误差,限制子策略停止运行,以上策略只能用与日内交易,
第二个模块如果是多品种一个策略,可以控制那个品种策略不运行,这个可以通过子策略判断自动选择,这个你要自己加条件控制。
第三个模块显示当前子策略状态,反馈到图表中表述色彩。如果子策略停止运行,黑色,红色亏损,绿色盈利。
最后一个模块判断主月换月接近当月风险,策略退出,可以选择开启。


--  作者:ma-robot
--  发布时间:2020/12/16 19:39:38
--  
以下是引用ma-robot在2020/12/16 19:34:24的发言:


图片点击可在新窗口打开查看此主题相关图片如下:屏幕快照 2020-12-16 下午7.38.38.png
图片点击可在新窗口打开查看
效果。