您现在的位置:程序化交易>> 期货公式>> (MC)multicharts>> MC知识>>正文内容

请教针对单一个股的当冲语法 [MultiCharts MC]

  • 咨询内容:

    我是用台泥股票的历史资料(用ASCII Mapping 的方式导入的)

    写出一个练习用的讯号 , 之後发现隔了几个讯号之後 , 就不会有当冲的效果

    (开始会变成留仓之後,到了下依讯号出现才会回补,然後当下又放空一张)

    买卖策略如下 :

    var1 = Volume;

     

    var6 = Volume[1]; var7 = Volume[2]; var8 = Volume[3]; var9 = Volume[4]; var10 = Volume[5];    if ( var1>var6 and var1>var7 and var1>var8 and var1>var9 and var1>var10 ) then begin        // Q1 : 如果我想改成 : 隔天开盘价大於等於今日收盘价才放空(先符合平盘上才能券卖的规定) , 要怎麽修正     sellshort("sell") 1 contracts next day at market;      // Q2 : 原本想要写出的动作是 : 如果隔天空到 , 最後无条件用收盘价回补 ( 但是查了一下资料 , 这样写很像是 [停利] , 没考虑到 [停损] )     buytocover 1 contracts next day at close limit;        // Q3 : 如果想要更进一步指定停损停利价位的回补语法又该如何写呢 ( 例如:停损设定为平盘价的+5%,停利价设定为放空到的价位向下3.5% end;        

     


     

  • MC技术部: Q1 condition1=if d<>d[1] and  o>=closed(1);   Q2 buytocover 1 contracts next bar closed(1) or higher;<==这是停损.. 而若是当冲不论如何都要出场!可加上时间限制 if time>=1320 then sell next bar marrket; buytocover next bar market; end;   Q3 停损可以利用 setstoplose 停利可以使用 setprofittarget
    第2篇

     

  • MC技术部:

     

    你的逻辑面本来就没有当冲语法 只是红圈处因为在盘整,所以"刚好"看起像是当冲 因为一直碰到出场点罢了   Q1 : 如果我想改成 : 隔天开盘价大於等於今日收盘价才放空(先符合平盘上才能券卖的规定) , 要怎麽修正 A: 一般模式无解,要用IOG模式或小於日线的周期才可以   Q2 : 原本想要写出的动作是 : 如果隔天空到 , 最後无条件用收盘价回补 A: 同上   Q3 : 如果想要更进一步指定停损停利价位的回补语法又该如何写呢 ( 例如:停损设定为平盘价的+5%,停利价设定为放空到的价位向下3.5% buytocover next bar c*0.95 limit; buytocover next bar c*1.035 stop;  
    第3篇

     

  • MC技术部:

    [IntrabarOrderGeneration = true];

     

    var1 = Volume;   var6 = Volume[1]; var7 = Volume[2]; var8 = Volume[3]; var9 = Volume[4]; var10 = Volume[5];   // 策略条件一 ; 今天的成交量必须大於前面五天的成交量 if ( var1>var6 and var1>var7 and var1>var8 and var1>var9 and var1>var10 ) then begin         // 策略条件二 : 今收必须大於今开     if close > open then begin          // 隔天用市价放空 ( 先不考虑开在平盘价以下的问题 )        sellshort("sell") next bar on market          // 收盘时无条件用收盘价回补( 我的目的只是在回测 )        if time >1320 then begin                  buytocover 1 contracts next bar on market;        end;       end; end;     上面这样的写法会呈现图档的现象,但我知道这是有问题的( 但已经不会出现之前留仓的问题)   标示1的问题: 策略条件一是成立条件,该天确实收盘大於开盘,且成交量大於前面五天 在标示1的地方却产生了操作讯号(预期是右边的讯号才对,这根则不要产生讯号) 还请告知哪个环节写错导致这边出现这样的讯号     标示2: 标示1的地方已经符合策略条件一以及策略条件二 所以在标示2的地方开始出现讯号(这是我期望的)     标示3的问题: 很明显的可以看出每个讯号的买卖都是在同一个价位(因为程式里面写的都是 on market) 而在标示3的地方更惨,是在最高价的那个位置(我期望的是卖在开盘价,买在收盘价) 请教一下该如何修正   因为我想针对现股建立一些策略并回测,有诸多不懂的地方 还请两位先进多多提示或指点,谢谢      

     

    编辑文章 by DavidLu 2011-10-24 16:53:52

     

  • MC客服:

     

    你的逻辑面本来就没有当冲语法 只是红圈处因为在盘整,所以"刚好"看起像是当冲 因为一直碰到出场点罢了   Q1 : 如果我想改成 : 隔天开盘价大於等於今日收盘价才放空(先符合平盘上才能券卖的规定) , 要怎麽修正 A: 一般模式无解,要用IOG模式或小於日线的周期才可以   Q2 : 原本想要写出的动作是 : 如果隔天空到 , 最後无条件用收盘价回补 A: 同上   Q3 : 如果想要更进一步指定停损停利价位的回补语法又该如何写呢 ( 例如:停损设定为平盘价的+5%,停利价设定为放空到的价位向下3.5% buytocover next bar c*0.95 limit; buytocover next bar c*1.035 stop;  
    第3篇

     

  • MC客服:

    [IntrabarOrderGeneration = true];

     

    var1 = Volume;   var6 = Volume[1]; var7 = Volume[2]; var8 = Volume[3]; var9 = Volume[4]; var10 = Volume[5];   // 策略条件一 ; 今天的成交量必须大於前面五天的成交量 if ( var1>var6 and var1>var7 and var1>var8 and var1>var9 and var1>var10 ) then begin         // 策略条件二 : 今收必须大於今开     if close > open then begin          // 隔天用市价放空 ( 先不考虑开在平盘价以下的问题 )        sellshort("sell") next bar on market          // 收盘时无条件用收盘价回补( 我的目的只是在回测 )        if time >1320 then begin                  buytocover 1 contracts next bar on market;        end;       end; end;     上面这样的写法会呈现图档的现象,但我知道这是有问题的( 但已经不会出现之前留仓的问题)   标示1的问题: 策略条件一是成立条件,该天确实收盘大於开盘,且成交量大於前面五天 在标示1的地方却产生了操作讯号(预期是右边的讯号才对,这根则不要产生讯号) 还请告知哪个环节写错导致这边出现这样的讯号     标示2: 标示1的地方已经符合策略条件一以及策略条件二 所以在标示2的地方开始出现讯号(这是我期望的)     标示3的问题: 很明显的可以看出每个讯号的买卖都是在同一个价位(因为程式里面写的都是 on market) 而在标示3的地方更惨,是在最高价的那个位置(我期望的是卖在开盘价,买在收盘价) 请教一下该如何修正   因为我想针对现股建立一些策略并回测,有诸多不懂的地方 还请两位先进多多提示或指点,谢谢      

     

    编辑文章 by DavidLu 2011-10-24 16:53:52

     

  • MC客服:

    [IntrabarOrderGeneration = true];

     

    var1 = Volume;   var6 = Volume[1]; var7 = Volume[2]; var8 = Volume[3]; var9 = Volume[4]; var10 = Volume[5];   // 策略条件一 ; 今天的成交量必须大於前面五天的成交量 if ( var1>var6 and var1>var7 and var1>var8 and var1>var9 and var1>var10 ) then begin         // 策略条件二 : 今收必须大於今开     if close > open then begin          // 隔天用市价放空 ( 先不考虑开在平盘价以下的问题 )        sellshort("sell") next bar on market          // 收盘时无条件用收盘价回补( 我的目的只是在回测 )        if time >1320 then begin                  buytocover 1 contracts next bar on market;        end;       end; end;     上面这样的写法会呈现图档的现象,但我知道这是有问题的( 但已经不会出现之前留仓的问题)   标示1的问题: 策略条件一是成立条件,该天确实收盘大於开盘,且成交量大於前面五天 在标示1的地方却产生了操作讯号(预期是右边的讯号才对,这根则不要产生讯号) 还请告知哪个环节写错导致这边出现这样的讯号     标示2: 标示1的地方已经符合策略条件一以及策略条件二 所以在标示2的地方开始出现讯号(这是我期望的)     标示3的问题: 很明显的可以看出每个讯号的买卖都是在同一个价位(因为程式里面写的都是 on market) 而在标示3的地方更惨,是在最高价的那个位置(我期望的是卖在开盘价,买在收盘价) 请教一下该如何修正   因为我想针对现股建立一些策略并回测,有诸多不懂的地方 还请两位先进多多提示或指点,谢谢      

     

    编辑文章 by DavidLu 2011-10-24 16:53:52

     

  • MC客服:

    1. 你没开精密回测吧

     

    2.       // 收盘时无条件用收盘价回补( 我的目的只是在回测 )

     

           if time >1320 then begin                  buytocover 1 contracts next bar on market;        end;   在日线中, time >1320一定会成立,所以它就下一根只要进场後,就直接出场了   跟本上的问题在於,为什麽要在日线做当冲,这并不合理 请改变为分线策略吧,不然你的问题一定存在  
    第5篇

     

  • MC客服:

    谢谢回覆

    关於当日冲的原因如下:

    我的策略是想要预测明日[现股]开高(或是平盘)走低的机率

    想说如果透过mc回测方式可以得到一些好的数据来支撑(也就是现在尝试过程中所想要达到的目的)

    就可以将该策略拿到实务上去运用

    如果当天收盘的资料有符合我的策略条件,隔天我就在市场上面用市价挂单准备现股当冲

    也就是说:

    初期只是期望透过MC进行回测,至於实际下单等等的问题可以先放一边

    按照您的指点,是否真的需要用到分线之类的数据才有办法呢 ><"

    毕竟回测过程中,是可以知道讯号那根K棒的OHLC,为何..... : (

     

    编辑文章 by DavidLu 2011-10-24 22:48:48

【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容