 |
77888877
中級會員
註冊日期: Feb 2006
來 自:
文章數量: 37 |
[問題] 寫法問題請教
MA55:MA(C,55);
MAXHNO:=UBOUND(BARPOS);
MA55_54:=((MA(C,55)*55)-REF(C,54)+C)/55;
MA55_53:=((MA(C,55)*55)-REF(C,54)-REF(C,53)+(2*C))/55;
MA55_52:=((MA(C,55)*55)-REF(C,54)-REF(C,53)-REF(C,52)+(3*C))/55;
MA55_51:=((MA(C,55)*55)-REF(C,54)-REF(C,53)-REF(C,52)-REF(C,51)+(4*C))/55;
.......
.......
.......
這方式寫到 MA55_30:=((MA(C,55)*55)-REF(C,54)-REF(C,53)-REF(C,52)-REF(C,51)-.....-REF(C,30)+(25*C))/55;
MMF55:=MA55;
MMF55[MAXHNO-25]:=MA55[MAXHNO];
MMF55[MAXHNO-24]:=MA55_54[MAXHNO];
MMF55[MAXHNO-23]:=MA55_53[MAXHNO];
MMF55[MAXHNO-22]:=MA55_52[MAXHNO];
MMF55[MAXHNO-21]:=MA55_51[MAXHNO];
.......
.......
.......
這方式寫到MMF55[MAXHNO-0]:=MA55_30[MAXHNO];
MM551:=BACKSET(ISLASTBAR,26);
POLYLINE(MM551,MMF55),SHIFT25,COLORBLUE;
想請問,以上面的方法寫完後會出現幾各問題,
1.當K線數過少會出現"指標數組下標越界或超出有效範圍"
2.當K線數少於55個, 則延生出來的線( POLYLINE(MM551,MMF55),SHIFT25,COLORBLUE; ) 會往上往下拉的很長很長...
3.請問還有什麼寫法可以縮短
THANKS!!!!
|
|
向版主報告此篇 |  |
|
2011-03-08 22:49 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18165 |
回覆: [問題] 寫法問題請教
引用: 最初由 77888877 發表
MA55:MA(C,55);
MAXHNO:=UBOUND(BARPOS);
MA55_54:=((MA(C,55)*55)-REF(C,54)+C)/55;
MA55_53:=((MA(C,55)*55)-REF(C,54)-REF(C,53)+(2*C))/55;
MA55_52:=((MA(C,55)*55)-REF(C,54)-REF(C,53)-REF(C,52)+(3*C))/55;
MA55_51:=((MA(C,55)*55)-REF(C,54)-REF(C,53)-REF(C,52)-REF(C,51)+(4*C))/55;
.......
.......
.......
這方式寫到 MA55_30:=((MA(C,55)*55)-REF(C,54)-REF(C,53)-REF(C,52)-REF(C,51)-.....-REF(C,30)+(25*C))/55;
MMF55:=MA55;
MMF55[MAXHNO-25]:=MA55[MAXHNO];
MMF55[MAXHNO-24]:=MA55_54[MAXHNO];
MMF55[MAXHNO-23]:=MA55_53[MAXHNO];
MMF55[MAXHNO-22]:=MA55_52[MAXHNO];
MMF55[MAXHNO-21]:=MA55_51[MAXHNO];
.......
.......
.......
這方式寫到MMF55[MAXHNO-0]:=MA55_30[MAXHNO];
MM551:=BACKSET(ISLASTBAR,26);
POLYLINE(MM551,MMF55),SHIFT25,COLORBLUE;
想請問,以上面的方法寫完後會出現幾各問題,
1.當K線數過少會出現"指標數組下標越界或超出有效範圍"
2.當K線數少於55個, 則延生出來的線( POLYLINE(MM551,MMF55),SHIFT25,COLORBLUE; ) 會往上往下拉的很長很長...
3.請問還有什麼寫法可以縮短
THANKS!!!!
問題1 和 2 都是因為K棒不足無法算
您要計算的呈現的方式, 至少需要 55+25=80 根K棒
不足80根程式就應要跳離不續做計算
原碼: MA55:MA(C,55);
if datacount<55+25 then exit;
CC:=C;
StNo:=datacount-26+1;
SS:=SUM(CC,55); SS:=SS[datacount];
EndC:=CC[datacount];
MMF55:C*0 linethick; StP:=datacount-55;
for i= StNo to datacount do begin
j:=i-StNo;
MMF55[i]:=(SS+EndC*j)/55;
SS:=SS-CC[StP+j];
end;
POLYLINE(barpos>=StNo,MMF55) shift25;
|
|
向版主報告此篇 |  |
|
2011-03-09 12:20 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|