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

请教如何编写区间的高低点 [MultiCharts MC]

  • 咨询内容:

    *当RSI往上突破20--->当RSI往下跌破80=取区间的最高点(显示高点文字)

    *当RSI往下跌破80--->当RSI往上突破20=取区间的最低点(显示高点文字)

     


     

  • MC技术部:

    您的条件并没有写的很清楚,有些地方要用猜的。

    譬如,如果RSI>20,但又跌回20以下,这样算不算在「突破20後但未跌落80下」的条件内呢?

     

    下面是我刚才随手试试写了一下,也许程式码不是很精简,您参考看看。

    1) RSI突破20,且未跌落80以下,为红色线。但未到80又跌落20以下,又回到绿色线。反之亦然。

    2)高低点显示只在最後一次的最高点及最低点显示出来,并不会纪录历史高低点。同时,高点为红色,低点为绿色。

     

    Input: Len1(14);
    Var: RSI1(0),value_RSI(0),value_RSI_rec(0),Position(0);

    value_RSI=RSI(close,Len1);

    if currentbar=1 then begin
        value_RSI_rec=value_RSI;
    end;

    if (value_RSI cross above 20) or (value_RSI cross above 80) then Position=1;
    if (value_RSI cross below 20) or (value_RSI cross below 80) then position=-1;

    if (Position=1 and value_RSI>value_RSI_rec) then begin
        value_RSI_rec=value_RSI;
        text_delete(value99);
        value99=text_new_self(date,time,value_RSI+3,numtostr(value_RSI_rec,0));
        text_setcolor(value99,red);
    end;

    if (Position=-1 and value_RSI<value_RSI_rec) then begin
        value_RSI_rec=value_RSI;
        text_delete(value98);
        value98=text_new_self(date,time,value_RSI-3,numtostr(value_RSI_rec,0));
        text_setcolor(value98,green);
    end;

    plot1(value_RSI,"RSI");
    if position=1 then setplotcolor(1,red);
    if position=-1 then setplotcolor(1,green);

     

     


    第2篇

     

  • MC技术部:

    感谢Soromance大

    原来是我没有说明清楚

    再度麻烦Soromance大

    正确应该说~

    当RSI往上突破80时确认前区间的低点(画延伸线),并从突破点开始等他跌落到20以下时确认区间内的高点(并画延伸线)

    并将高点与高点作成连结的延伸线,低点与低点做成连结的延伸线

    谢谢!!麻烦了^^

     

     

     

     

     

     

    编辑文章 by shuanbin 2012-03-03 11:50:02

     

  • MC客服:

    感谢Soromance大

    原来是我没有说明清楚

    再度麻烦Soromance大

    正确应该说~

    当RSI往上突破80时确认前区间的低点(画延伸线),并从突破点开始等他跌落到20以下时确认区间内的高点(并画延伸线)

    并将高点与高点作成连结的延伸线,低点与低点做成连结的延伸线

    谢谢!!麻烦了^^

     

     

     

     

     

     

    编辑文章 by shuanbin 2012-03-03 11:50:02

     

  • MC客服:

    提示:

    IF  RSI第一次站上80 或跌破20时

    先把 BARNUMBER - 上次存的BARNUMBER 就是区间,用来找高低点

    算完就可以再把 BARNUMBER 存起来给下次进来这个 IF时用

     

    另一种方式

    IF RSI第一次站上80 或跌破20时,清除动态高低值

    else 动态移动高低点记录值

     

     


    第4篇

     

  • MC客服:

    感谢客服一号~

    我先踹踹看~

    3Q

     


    第5篇

     

  • MC客服:

    =_=

    乱写一通~编译不出来~

    有请善心人士帮忙

    crying


    第6篇

     

  • MC客服:

    我的写法是使用客服一号大的第二种方式。

    其实不难的,只要把原来value_RSI_rec的值从纪录value_RSI,改成纪录K棒的high or low就好了。

    但这种方式有个缺点,就是无法纪录历史的高低值,只能显示最後一次的高低价格。

     

    Input: Len1(14);
    Var: RSI1(0),value_RSI(0),value_RSI_rec(0),Position(0);

    value_RSI=RSI(close,Len1);

    if (value_RSI cross above 20) or (value_RSI cross above 80) then position=1;
    if (value_RSI cross below 20) or (value_RSI cross below 80) then position=-1;

    if (Position=1 and High>value_RSI_rec) then begin
        value_RSI_rec=high;
        text_delete(value99);
        value99=text_new(date,time,high+10,numtostr(value_RSI_rec,0));
        text_setcolor(value99,red);
    end;

    if (Position=-1 and low<value_RSI_rec) then begin
        value_RSI_rec=low;
        text_delete(value98);
        value98=text_new(date,time,low-10,numtostr(value_RSI_rec,0));
        text_setcolor(value98,green);
    end;

    plot1(value_RSI,"RSI");
    if position=1 then setplotcolor(1,red);
    if position=-1 then setplotcolor(1,green);

    再来,至於画线的部份,由於最後一个RSI>80 or RSI<20的高低点是动态的,且无法纪录历史值,所以用这种方式来写就画不出来。

    可能要用客服一号大的第一种方式来写:

    每一根新成立的K棒画线,都要依据当时的高低点,从最後一次RSI>80 or RSI<20的K棒开始画。

    您要不要先试试看?

     

    最後,请教客服一号大,

    若我已在副图画了RSI的plot,同时又想在主图画另一个plot,要用什麽指令呢?

    谢谢您!

    编辑文章 by Soromance 2012-03-05 17:57:06

     

  • MC客服:

    感谢客服一号~

    我先踹踹看~

    3Q

     


    第5篇

     

  • MC客服:

    =_=

    乱写一通~编译不出来~

    有请善心人士帮忙

    crying


    第6篇

     

  • MC客服:

    我的写法是使用客服一号大的第二种方式。

    其实不难的,只要把原来value_RSI_rec的值从纪录value_RSI,改成纪录K棒的high or low就好了。

    但这种方式有个缺点,就是无法纪录历史的高低值,只能显示最後一次的高低价格。

     

    Input: Len1(14);
    Var: RSI1(0),value_RSI(0),value_RSI_rec(0),Position(0);

    value_RSI=RSI(close,Len1);

    if (value_RSI cross above 20) or (value_RSI cross above 80) then position=1;
    if (value_RSI cross below 20) or (value_RSI cross below 80) then position=-1;

    if (Position=1 and High>value_RSI_rec) then begin
        value_RSI_rec=high;
        text_delete(value99);
        value99=text_new(date,time,high+10,numtostr(value_RSI_rec,0));
        text_setcolor(value99,red);
    end;

    if (Position=-1 and low<value_RSI_rec) then begin
        value_RSI_rec=low;
        text_delete(value98);
        value98=text_new(date,time,low-10,numtostr(value_RSI_rec,0));
        text_setcolor(value98,green);
    end;

    plot1(value_RSI,"RSI");
    if position=1 then setplotcolor(1,red);
    if position=-1 then setplotcolor(1,green);

    再来,至於画线的部份,由於最後一个RSI>80 or RSI<20的高低点是动态的,且无法纪录历史值,所以用这种方式来写就画不出来。

    可能要用客服一号大的第一种方式来写:

    每一根新成立的K棒画线,都要依据当时的高低点,从最後一次RSI>80 or RSI<20的K棒开始画。

    您要不要先试试看?

     

    最後,请教客服一号大,

    若我已在副图画了RSI的plot,同时又想在主图画另一个plot,要用什麽指令呢?

    谢谢您!

    编辑文章 by Soromance 2012-03-05 17:57:06

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

相关文章

    没有相关内容