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

MC的股票软件有止损设置吗 [MC]

  • MC用户求助:

    //指标yiyi

    inputs: 

            StochLength( 9), 

            SmoothingLength( 3 ),                                                                                                        

            OverSold( 20 ), 

            OverBought( 80 ) ; 

    {通过input定义参数,可以从外部进行更改参数,参数在代码内部不能动态更改}

     

    variables:

            var_k( 0 ),   //定义K值变量

            var_d( 0 ),   //定义D值变量

            var_j( 0 ),   //定义J值变量

            var_date(0);

    {通过关键字variables声明变量;value1到value99,condition1到condition99这两类变量是MC自带的,不需要声明就可以使用,前者是数值变量,后者是布尔变量}

     

    if currentbar=1 then

            var_date=date;  //存储第一根bar的日期

    Value1 = Alex_KDJ(stochlength,smoothinglength,var_k,var_d,var_j);  //调用KDJ函数

    value2=lowest(var_k,40);

    value3=lowest(var_d,40);

    value4=lowest(var_j,40);

    value5=lowest(close,40);

    value6=lowest(var_k,80);

    value7=lowest(var_d,80);

    value8=lowest(var_j,80);

    value9=lowest(close,80);

    {通过函数lowest计算最近多少根bar的最小值}

     

    condition1=var_k[1]=value2 and var_d[1]=value3 and var_j[1]=value4;

    condition2=close[1]=value5;

    condition3=var_k[1]=value6 and var_d[1]=value7 and var_j[1]=value8;

    condition4=close[1]=value9;

    condition5=var_j>var_j[1] and var_j[1]<var_j[2];

    condition6=date-var_date>=300;  

    {MC没有存储股票是否上市多少天的数据,但是可以通过第一根bar的日期与最新的日期之差来计算日期天数}

     

    {condition1到condition7分别对应您帖子中的6个条件}

    Plot1( var_k, "K" ) ;

    Plot2( var_d, "D") ;

    Plot3( OverBought, "OverBot" ) ;

    Plot4( OverSold, "OverSld" ) ;

     

    if ((condition1 and condition2) or (condition3 and condition4)) and condition5 and condition6 then

            Alert(text(getsymbolname));  

    {条件满足时发送警报(返回该股票的名称),可以在交易追踪器的“警告”栏位或者通过邮件来查看}

     

     

    //函数Alex_KDJ

    input: length(numericsimple), smoothlength(numericsimple), var_K(numericref), var_D(numericref), var_J(numericref);

    var: high1(0), low1(0), rsv(0);

     

    high1=highest(high,length);

    low1=lowest(low,length);

    if high1<>low1 then

            rsv=(close-low1)/(high1-low1)*100

    else rsv=0;

     

    var_k=xaverageorig(rsv,smoothlength);

    var_d=xaverageorig(var_k,smoothlength);

    var_j=3*var_k-2*var_d;

     

     

     

    注意事项:

    第一、选股可以使用投资组合回测或者投资组合交易功能进行。

    第二、目前关于分钟的数据可能没有太长(超过1年),但是日线数据是从该股票上市那天的数据到当前,所以您的选股周期需要使用日线周期。

    第三、关于邮件警告,这个功能,您可以在论坛进行搜索学习。

    第四、可能没有将所有的细节都告诉您,一些问题可以在QQ群进行及时的咨询。

     

  • MC回复讨论一:

    //指标yiyi

    inputs: 

            StochLength( 9), 

            SmoothingLength( 3 ),                                                                                                        

            OverSold( 20 ), 

            OverBought( 80 ) ; 

    {通过input定义参数,可以从外部进行更改参数,参数在代码内部不能动态更改}

     

    variables:

            var_k( 0 ),   //定义K值变量

            var_d( 0 ),   //定义D值变量

            var_j( 0 ),   //定义J值变量

            var_date(0);

    {通过关键字variables声明变量;value1到value99,condition1到condition99这两类变量是MC自带的,不需要声明就可以使用,前者是数值变量,后者是布尔变量}

     

    if currentbar=1 then

            var_date=date;  //存储第一根bar的日期

    Value1 = Alex_KDJ(stochlength,smoothinglength,var_k,var_d,var_j);  //调用KDJ函数

    value2=lowest(var_k,40);

    value3=lowest(var_d,40);

    value4=lowest(var_j,40);

    value5=lowest(close,40);

    value6=lowest(var_k,80);

    value7=lowest(var_d,80);

    value8=lowest(var_j,80);

    value9=lowest(close,80);

    {通过函数lowest计算最近多少根bar的最小值}

     

    condition1=var_k[1]=value2 and var_d[1]=value3 and var_j[1]=value4;

    condition2=close[1]=value5;

    condition3=var_k[1]=value6 and var_d[1]=value7 and var_j[1]=value8;

    condition4=close[1]=value9;

    condition5=var_j>var_j[1] and var_j[1]<var_j[2];

    condition6=date-var_date>=300;  

    {MC没有存储股票是否上市多少天的数据,但是可以通过第一根bar的日期与最新的日期之差来计算日期天数}

     

    {condition1到condition7分别对应您帖子中的6个条件}

    Plot1( var_k, "K" ) ;

    Plot2( var_d, "D") ;

    Plot3( OverBought, "OverBot" ) ;

    Plot4( OverSold, "OverSld" ) ;

     

    if ((condition1 and condition2) or (condition3 and condition4)) and condition5 and condition6 then

            Alert(text(getsymbolname));  

    {条件满足时发送警报(返回该股票的名称),可以在交易追踪器的“警告”栏位或者通过邮件来查看}

     

     

    //函数Alex_KDJ

    input: length(numericsimple), smoothlength(numericsimple), var_K(numericref), var_D(numericref), var_J(numericref);

    var: high1(0), low1(0), rsv(0);

     

    high1=highest(high,length);

    low1=lowest(low,length);

    if high1<>low1 then

            rsv=(close-low1)/(high1-low1)*100

    else rsv=0;

     

    var_k=xaverageorig(rsv,smoothlength);

    var_d=xaverageorig(var_k,smoothlength);

    var_j=3*var_k-2*var_d;

     

     

     

    注意事项:

    第一、选股可以使用投资组合回测或者投资组合交易功能进行。

    第二、目前关于分钟的数据可能没有太长(超过1年),但是日线数据是从该股票上市那天的数据到当前,所以您的选股周期需要使用日线周期。

    第三、关于邮件警告,这个功能,您可以在论坛进行搜索学习。

    第四、可能没有将所有的细节都告诉您,一些问题可以在QQ群进行及时的咨询。

     

  • MC回复讨论二:

    老师辛苦了,日线周期可以了。顺便问问这个公式或以后我自己编的公式,可以实现A股的小周期选股吗?比如1分钟或5分钟30分钟等。

     

  • MC回复讨论三:

    小周期选股可以的,但是可能需要将条件6去除掉,因为分钟数据实盘支持1年,模拟盘不到1年时间,分钟及小时周期数据是由1分钟组合成的。

     

  • MC回复讨论四:

    小周期选股可以的,但是可能需要将条件6去除掉,因为分钟数据实盘支持1年,模拟盘不到1年时间,分钟及小时周期数据是由1分钟组合成的。

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容