*當RSI往上突破20--->當RSI往下跌破80=取區間的最高點(顯示高點文字)
*當RSI往下跌破80--->當RSI往上突破20=取區間的最低點(顯示高點文字)
您的條件并沒有寫的很清楚,有些地方要用猜的。
譬如,如果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);
感謝Soromance大
原來是我沒有說明清楚
再度麻煩Soromance大
正確應該說~
當RSI往上突破80時確認前區間的低點(畫延伸線),并從突破點開始等他跌落到20以下時確認區間內的高點(并畫延伸線)
并將高點與高點作成連結的延伸線,低點與低點做成連結的延伸線
謝謝!!麻煩了^^
編輯文章 by shuanbin 2012-03-03 11:50:02
感謝Soromance大
原來是我沒有說明清楚
再度麻煩Soromance大
正確應該說~
當RSI往上突破80時確認前區間的低點(畫延伸線),并從突破點開始等他跌落到20以下時確認區間內的高點(并畫延伸線)
并將高點與高點作成連結的延伸線,低點與低點做成連結的延伸線
謝謝!!麻煩了^^
編輯文章 by shuanbin 2012-03-03 11:50:02
提示:
IF RSI第一次站上80 或跌破20時
先把 BARNUMBER - 上次存的BARNUMBER 就是區間,用來找高低點
算完就可以再把 BARNUMBER 存起來給下次進來這個 IF時用
另一種方式
IF RSI第一次站上80 或跌破20時,清除動態高低值
else 動態移動高低點記錄值
感謝客服一號~
我先踹踹看~
3Q
=_=
亂寫一通~編譯不出來~
有請善心人士幫忙
我的寫法是使用客服一號大的第二種方式。
其實不難的,只要把原來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
感謝客服一號~
我先踹踹看~
3Q
=_=
亂寫一通~編譯不出來~
有請善心人士幫忙
我的寫法是使用客服一號大的第二種方式。
其實不難的,只要把原來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