请教如何编写区间的高低点 [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以下时确认区间内的高点(并画延伸线)
并将高点与高点作成连结的延伸线,低点与低点做成连结的延伸线
谢谢!!麻烦了^^
- MC客服:
感谢Soromance大
原来是我没有说明清楚
再度麻烦Soromance大
正确应该说~
当RSI往上突破80时确认前区间的低点(画延伸线),并从突破点开始等他跌落到20以下时确认区间内的高点(并画延伸线)
并将高点与高点作成连结的延伸线,低点与低点做成连结的延伸线
谢谢!!麻烦了^^
- MC客服:
提示:
IF RSI第一次站上80 或跌破20时
先把 BARNUMBER - 上次存的BARNUMBER 就是区间,用来找高低点
算完就可以再把 BARNUMBER 存起来给下次进来这个 IF时用
另一种方式
IF RSI第一次站上80 或跌破20时,清除动态高低值
else 动态移动高低点记录值
第4篇 - MC客服:
感谢客服一号~
我先踹踹看~
3Q
第5篇 - MC客服:
=_=
乱写一通~编译不出来~
有请善心人士帮忙
第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客服:
=_=
乱写一通~编译不出来~
有请善心人士帮忙
第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客服: