奇狐社區論壇
在這個頁面顯示本主題全部的 13 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [問題]請問如何以前一天最低價或最高價向右畫水平切線並標示價位 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=9409)


由 franklin5658 在 2008-03-26 13:09 發表:

[問題]請問如何以前一天最低價或最高價向右畫水平切線並標示價位

請問版大:以大台5日均線為操作基準,當收盤價在5日均線上時,則以前一天的最低價為基準,向右畫水平切線並標示最低價位;而當收盤價在5日均線下時,則改以前一天的最高價為基準, 向右畫水平切線並標示最高價位,且僅保留最後一根最高或最低的水平切線。因為如以:IF(C>=MA(Close,5),ref(Low,1),ref(High,1))的觀念是連線,但我只要最後一根的水平切線,懇請版大幫忙,感恩。

__________________
Franklin5658


由 cgjj 在 2008-03-26 13:17 發表:

回覆: [問題]請問如何以前一天最低價或最高價向右畫水平切線並標示價位

引用:
最初由 franklin5658 發表
請問版大:以大台5日均線為操作基準,當收盤價在5日均線上時,則以前一天的最低價為基準,向右畫水平切線並標示最低價位;而當收盤價在5日均線下時,則改以前一天的最高價為基準, 向右畫水平切線並標示最高價位,且僅保留最後一根最高或最低的水平切線。因為如以:IF(C>=MA(Close,5),ref(Low,1),ref(High,1))的觀念是連線,但我只要最後一根的水平切線,懇請版大幫忙,感恩。


MM:IF(C>=MA(Close,5),ref(Low,1),ref(High,1));
MM:=MM[datacount];


由 franklin5658 在 2008-03-26 20:57 發表:

謝謝版主指導,已修改成符合自己所需

__________________
Franklin5658


由 mori868 在 2008-03-27 06:27 發表:

回覆: 回覆: [問題]請問如何以前一天最低價或最高價向右畫水平切線並標示價位

引用:
最初由 cgjj 發表
MM:IF(C>=MA(Close,5),ref(Low,1),ref(High,1));
MM:=MM[datacount];


假如要最後5日均線上拐與下拐時 畫水平線的連線呢?


由 cgjj 在 2008-03-27 10:15 發表:

回覆: 回覆: 回覆: [問題]請問如何以前一天最低價或最高價向右畫水平切線並標示價位

引用:
最初由 mori868 發表
假如要最後5日均線上拐與下拐時 畫水平線的連線呢?


MA5:MA(C,5);
CK:=ref(MA5,1)>MA5 and refx(MA5,1)>MA5;
DD:ref(MA5,BARSLAST(CK));
DD:=DD[datacount];
CK:=ref(MA5,1)<MA5 and refx(MA5,1)<MA5;
UU:ref(MA5,BARSLAST(CK));
UU:=UU[datacount];


由 franklin5658 在 2008-03-27 16:51 發表:

MM:ma(c,5);
DLSP:=BARSLAST(ref(MM,1)>MM and refx(MM,1)>MM);
DLSP:=DLSP[datacount];
DLPOS:=datacount-DLSP;
DL:=barpos=DLPOS;
ULSP:=BARSLAST(ref(MM,1)<MM and refx(MM,1)<MM);
ULSP:=ULSP[datacount];
ULPOS:=datacount-ULSP;
UL:=barpos=ULPOS;
DRAWSL(DL,MM,0,DLSP,3) colorred;
DRAWSL(UL,MM,0,ULSP,3) colorgreen;
DRAWNUMBER(ISLASTBAR,MM[DLPOS],MM[DLPOS],2) colorred shift1;
DRAWNUMBER(ISLASTBAR,MM[ULPOS],MM[ULPOS],2) colorgreen shift1;
MM1:=IF(C>=ma(c,5),ref(Low,1),ref(High,1));
MM1:=MM1[datacount];
DLPOS:=datacount-DLSP;
DL:=barpos=DLPOS;
DRAWSL(DL,MM1,0,DLSP,3) colorwhite;
DRAWNUMBER(ISLASTBAR,MM1,MM1,2) colorwhite shift1;
此為依照版主的指導修改而成,可以符合需求,但畫面上不太漂亮,因為MM1只會抓colorred的長度,但我希望的是如果C小於MM1時畫colorgreen的長度,C大於MM1時畫紅線的長度,懇請指導,謝謝

__________________
Franklin5658


由 cgjj 在 2008-03-27 17:16 發表:

引用:
最初由 franklin5658 發表
...........
此為依照版主的指導修改而成,可以符合需求,但畫面上不太漂亮,因為MM1只會抓colorred的長度,但我希望的是如果C小於MM1時畫colorgreen的長度,C大於MM1時畫紅線的長度,懇請指導,謝謝



會有起點先後的問題, 因為:
有時綠起點在紅之前
有時綠起點在紅之後


由 mori868 在 2008-03-27 19:02 發表:

學到了 謝謝


由 peter109 在 2008-03-27 20:39 發表:

//因為MM1只會抓colorred的長度,但我希望的是如果C小於MM1時畫colorgreen的長度,C大於MM1時畫紅線的長度

這樣可以嗎?

XU:=BARSLAST(ref(MM,1)>MM and refx(MM,1)>MM);
XD:=BARSLAST(ref(MM,1)<MM and refx(MM,1)<MM);

CC:=C;
CC:=CC[datacount];
XL:=IF(CC>=MM1,XU,XD);//您要的線條長度

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 franklin5658 在 2008-03-28 16:57 發表:

感謝Peter109的回覆,可是我不知是否符合需求,程式要插在那個段落,我還要再想一下,謝謝

__________________
Franklin5658


由 franklin5658 在 2008-03-28 19:58 發表:

MM:ma(c,5);
DLSP:=BARSLAST(ref(MM,1)>MM and refx(MM,1)>MM);
DLSP:=DLSP[datacount];
DLPOS:=datacount-DLSP;
DL:=barpos=DLPOS;
ULSP:=BARSLAST(ref(MM,1)<MM and refx(MM,1)<MM);
ULSP:=ULSP[datacount];
ULPOS:=datacount-ULSP;
UL:=barpos=ULPOS;
DRAWSL(DL,MM,0,DLSP,3) colorred;//#1
DRAWSL(UL,MM,0,ULSP,3) colorgreen;//#2
DRAWNUMBER(ISLASTBAR,MM[DLPOS],MM[DLPOS],2) colorred shift1;
DRAWNUMBER(ISLASTBAR,MM[ULPOS],MM[ULPOS],2) colorgreen shift1;
//以上是版主指導5日均線翻揚和翻跌時向右畫水平線並標示價位的寫法
MM1:=IF(C>=ma(c,5),ref(Low,1),ref(High,1));
MM1:=MM1[datacount];
//以上是版主指導大於5日均線取前ㄧ天最低否則取前ㄧ天最高畫水平線的寫法
//但因為我不想線太長,因此畫最高或最低的線段想以紅線#1或綠線#2的長度表示,而以下的方式,白色線僅取得紅線的長度
DRAWSL(DL,MM1,0,DLSP,3) colorwhite;
DRAWNUMBER(ISLASTBAR,MM1,MM1,2) colorwhite shift1;
//而按照Peter109大大的提示修改成如下,是我想達到的情況,只是很奇怪,在訓練模式下,觀看K線的變化有時白色線會不見,僅有數字出現而已,不知是何原因?還是說IF不能如此用,由於初學只能東湊西湊,懇請見諒賜教
XU:=IF(C>=MM1,DL,UL);
XD:=IF(C>=MM1,DLSP,ULSP);
DRAWSL(XU,MM1,0,XD,3) colorwhite;
DRAWNUMBER(ISLASTBAR,MM1,MM1,2) colorwhite shift1;

__________________
Franklin5658


由 peter109 在 2008-03-29 12:57 發表:

這樣是您要的?

//DRAWSL(DL,MM1,0,DLSP,3),colorwhite;
//DRAWNUMBER(ISLASTBAR,MM1,MM1,2),colorwhite,shift1;

CC:=C;
CC:=CC[datacount];
XU:=IF(CC>=MM1,DL,UL);
XD:=IF(CC>=MM1,DLSP,ULSP);
DRAWSL(XU,MM1,0,XD,3) colorwhite;
DRAWNUMBER(ISLASTBAR,MM1,MM1,2),colorwhite,shift1;

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 franklin5658 在 2008-03-30 21:07 發表:

感謝Peter109大大的協助,已大致符合需求,感恩

__________________
Franklin5658


全部時間均為台灣時間, 現在時間為23:38
在這個頁面顯示本主題全部的 13 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.