奇狐社區論壇 總頁數 (5): « 1 2 [3] 4 5 »
在這個頁面顯示本主題全部的 61 個文章

奇狐社區論壇 (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=19056)


由 cgjj 在 2015-01-22 13:34 發表:

引用:
最初由 a9681054 發表
版主你好,
首先感謝版主辛苦的幫忙~
套用後,發現有幾個小狀況:
1)有延伸位置不對
2)不該延伸位置產生出延伸線
3)該延伸位置有些沒有產生出延伸線

詳細部份,如附件照片指示箭頭說明
圖片下半部是正常的,供版主比對參考!

以上問題,再次麻煩版主協助~



請抓奇狐完整的畫面, 沒有商品名稱和週期難以核對您畫面


由 a9681054 在 2015-01-22 13:49 發表:

版主你好,
剛先檢查一下,發現是R1及R2置入迴圈相反,版主寫迴圈的部份我也沒動,我更改劃水平線條件後已正常.

新修正源碼如下:
//劃水平線
S1:=多頭關卡=REF(多頭關卡,1);
S2:=空頭關卡=REF(空頭關卡,1);
PARTLINE(S1,多頭關卡) COLORred, LINETHICK2;
PARTLINE(S2,空頭關卡) COLORcyan, LINETHICK2;

不過還有一個問題,希望版主繼續協助,就是圖片圈圈處(多頭關卡及空頭關卡一樣走平),想請教為何沒有拉出伸水平線,感覺是否因右邊尚未碰到K棒而沒產生.

我的需求像這種情況,希望它一樣能產生延伸線出來給未來用,目前已大致符合我原先的需求,圈圈處再請版主程式予協助,謝謝~

__________________
chiu


由 a9681054 在 2015-01-22 13:53 發表:

補上商品名稱及週期圖片~

__________________
chiu


由 cgjj 在 2015-01-22 14:50 發表:

引用:
最初由 a9681054 發表
版主你好,
首先感謝版主辛苦的幫忙~
套用後,發現有幾個小狀況:
1)有延伸位置不對
2)不該延伸位置產生出延伸線
3)該延伸位置有些沒有產生出延伸線

詳細部份,如附件照片指示箭頭說明
圖片下半部是正常的,供版主比對參考!

以上問題,再次麻煩版主協助~



原碼:
CC:=C; HH:=H; LL:=L; //MOON Var4:=(LOW+HIGH+CLOSE)/3; 操作:= MA(Var4,5),colorGREEN,linethick2; 多頭關卡:HHV(操作,21) COLORBLACK,linethick2; 空頭關卡:LLV(操作,10) COLORBLACK,linethick2; //劃水平線 S1:=多頭關卡=REF(多頭關卡,1); S2:=空頭關卡=REF(空頭關卡,1); PARTLINE(S1,多頭關卡) COLORred, LINETHICK2; PARTLINE(S2,空頭關卡) COLORcyan, LINETHICK2; R1:=S1 and refx(S1,1)=0; R2:=S2 and refx(S2,1)=0; MaxKBar:=0; //僅畫最近n根K棒, 零則畫全部 DW1:=C*0; DW2:=C*0; StNo:=datacount-MaxKBar+1; if StNo<lbound(R1) or MaxKBar=0 then StNo:=lbound(R1); for i= StNo to datacount do begin if R1[i] <> 0 then begin for j=i+1 to datacount do begin if R1[i]=1 and HH[j]>多頭關卡[i] then begin DW1[i]:=j-i; break; end; end; if j>datacount then DW1[i]:=j-i-1; end; end; StNo:=datacount-MaxKBar+1; if StNo<lbound(R2) or MaxKBar=0 then StNo:=lbound(R2); for i= StNo to datacount do begin if R2[i] <> 0 then begin for j=i+1 to datacount do begin if R2[i]=1 and LL[j]<空頭關卡[i] then begin DW2[i]:=j-i; break; end; end; if j>datacount then DW2[i]:=j-i-1; end; end; DRAWSL(DW1,多頭關卡,0,DW1,3) COLORRED pxdn2; DRAWSL(DW2 ,空頭關卡,0,DW2,3) COLORCYAN pxdn2;


由 a9681054 在 2015-01-22 15:34 發表:

版主你好,
你的迴圈寫作真是太棒了,一直想不出的問題,藉由你的幫忙終於把它完成,在此向你說聲非常感謝~

請教你,因為初學不曉得要研讀何種書籍?才可以學到像這樣棒的迴圈寫作.

__________________
chiu


由 cgjj 在 2015-01-22 17:09 發表:

引用:
最初由 a9681054 發表
版主你好,
你的迴圈寫作真是太棒了,一直想不出的問題,藉由你的幫忙終於把它完成,在此向你說聲非常感謝~

請教你,因為初學不曉得要研讀何種書籍?才可以學到像這樣棒的迴圈寫作.



不客氣

幾乎任何一本程式設計的書籍,都會教到迴圈的應用
差別僅在於語法

學會其中一種,即使換不同程式語言,迴圈一樣可應用發揮


由 a9681054 在 2015-01-22 17:27 發表:

版主你好,
ok,我再去買書開始來研讀,謝謝了~

__________________
chiu


由 a9681054 在 2015-01-23 19:29 發表:

版主你好,
有一個小要求,你可以幫忙在你寫的迴圈部份,每一行後面做一下註釋,予便於了解其程式意思,可以? 謝謝~

__________________
chiu


由 cgjj 在 2015-01-26 09:05 發表:

引用:
最初由 a9681054 發表
版主你好,
有一個小要求,你可以幫忙在你寫的迴圈部份,每一行後面做一下註釋,予便於了解其程式意思,可以? 謝謝~



前面的程式可簡化為:

原碼:
CC:=C; HH:=H; LL:=L; //MOON Var4:=(LOW+HIGH+CLOSE)/3; 操作:= MA(Var4,5),colorGREEN,linethick2; 多頭關卡:HHV(操作,21) COLORBLACK,linethick2; 空頭關卡:LLV(操作,10) COLORBLACK,linethick2; //劃水平線 S1:=多頭關卡=REF(多頭關卡,1); S2:=空頭關卡=REF(空頭關卡,1); PARTLINE(S1,多頭關卡) COLORred, LINETHICK2; PARTLINE(S2,空頭關卡) COLORcyan, LINETHICK2; R1:=S1 and refx(S1,1)=0; R2:=S2 and refx(S2,1)=0; MaxKBar:=0; //僅畫最近n根K棒, 零則畫全部 DW1:=C*0; DW2:=C*0; StNo:=datacount-MaxKBar+1; if StNo<lbound(R1) or MaxKBar=0 then StNo:=lbound(R1); for i= StNo to datacount do begin if R1[i] then begin for j=i+1 to datacount do begin if HH[j]>多頭關卡[i] then begin DW1[i]:=j-i; break; end; end; if j>datacount then DW1[i]:=j-i-1; end; end; StNo:=datacount-MaxKBar+1; if StNo<lbound(R2) or MaxKBar=0 then StNo:=lbound(R2); for i= StNo to datacount do begin if R2[i] then begin for j=i+1 to datacount do begin if LL[j]<空頭關卡[i] then begin DW2[i]:=j-i; break; end; end; if j>datacount then DW2[i]:=j-i-1; end; end; DRAWSL(DW1,多頭關卡,0,DW1,3) COLORRED pxdn2; DRAWSL(DW2 ,空頭關卡,0,DW2,3) COLORCYAN pxdn2;


由 cgjj 在 2015-01-26 09:06 發表:

迴圈說明:

原碼:
for i= StNo to datacount do begin //依序跑每一根K棒 if R1[i] then begin //若該根K棒 R1 條件成立 for j=i+1 to datacount do begin //則開始向後依序搜尋 if HH[j]>多頭關卡[i] then begin //若H價有過成立位置之多頭關卡價 DW1[i]:=j-i; break; //取與成立位置相差距離存入DW1,並跳離迴圈 end; end; //若搜尋到最終K棒仍無符合之處,取與成立位置相差距離存入DW1 if j>datacount then DW1[i]:=j-i-1; end; end;


由 a9681054 在 2015-01-26 12:07 發表:

版主你好,
感恩~

__________________
chiu


由 a9681054 在 2015-02-02 10:59 發表:

版主你好,
在即時盤中,想在最後一根k棒,讓未碰觸到的多頭關卡及空頭關卡走平的水平線,自動多往右一根延伸顯示,麻煩版主協助,謝謝~

__________________
chiu


由 cgjj 在 2015-02-02 11:07 發表:

引用:
最初由 a9681054 發表
版主你好,
在即時盤中,想在最後一根k棒,讓未碰觸到的多頭關卡及空頭關卡走平的水平線,自動多往右一根延伸顯示,麻煩版主協助,謝謝~




if j>datacount then DW1[i]:=j-i-1;
if j>datacount then DW2[i]:=j-i-1;

改為
if j>datacount then DW1[i]:=j-i;
if j>datacount then DW2[i]:=j-i;


由 a9681054 在 2015-02-02 11:14 發表:

版主你好,
可以了,非常感謝你的幫忙~

__________________
chiu


由 a9681054 在 2015-02-03 13:40 發表:

版主你好,
即時盤中,想在最後一根k棒,讓未碰觸到多頭關卡及空頭關卡走平的水平線,自動多往右一根延伸顯示.

上次回覆版主套用是可以,但發現還有二個小問題,想請版主再次協助.

1)當下的最後一組,未碰觸到多頭關卡及空頭關卡走平的水平線,也能在最後一根k棒,自動多往右一根延伸顯示.

2))當下的最後一組,未碰觸到多頭關卡及空頭關卡走平的水平線,除第1點外,如符合延伸顯示條件時,也能即時向右延伸,以便於當下做真假突破或跌破判斷.

以上

__________________
chiu


全部時間均為台灣時間, 現在時間為02:39 總頁數 (5): « 1 2 [3] 4 5 »
在這個頁面顯示本主題全部的 61 個文章


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

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