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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 應用交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=33)
-- 程式出錯,請給予指點 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=16541)


由 mhlin999 在 2012-03-10 21:51 發表:

程式出錯,請給予指點

主要想知道當天收盤價以上的2個壓力點位置
壓力點的定義是:今天收盤價大於明天收盤價時,今天收盤價看作壓力點
未來上漲時會遇到的最近的2個壓力點想表達在上方文字欄
寫好後編譯為調試通過,但執行時出現"腳本錯誤"等訊息,2次後會關掉奇狐
祈請幫忙修正錯誤程式,先此致謝!

//壓力--最近的, 前一個
DRAWSL(C>refx(C,1) and not(islastbar),C,0,3,3),color44dddd;
prsck:if(C>refx(C,1),C,-1),linethick0,colorwhite;
prspp:=barslast(prsck<>-1),linethick0,colorwhite;
prs:ref(prsck,prspp),,linethick0,colorwhite;//最近的壓力
drawtext(cross(refx(C,1),prs),prs,'過壓'),shift1,linethick0,colorwhite;
pr2:ref(prsck,ref(prspp,prspp+1)+prspp+1),linethick0,colorwhite;//前一個壓力
px:=prsck,linethick0;
cc:=C,linethick0;
pp1:=0;
pp2:=0;
<%
prsck = FFL.VarData("prsck")
px = FFL.VarData("px")
CC = FFL.VarData("CC")
pp1 = FFL.VarData("pp1")
pp2 = FFL.VarData("pp2")
prsUB=Ubound(prsck)
prsLB=Lbound(prsck)
pn=0
gg=1
for kk = prsLB to prsUB
if prsck[prsUB-gg]<=cc[prsUB] then px[prsUB-gg]=-1
if prsck[prsUB-gg]>cc[prsUB] then pn=pn+1
if prsck[prsUB-gg]>cc[prsUB] and pn=1 then pp1=prsUB-gg
if prsck[prsUB-gg]>cc[prsUB] and pn=2 then pp2=prsUB-gg
if pn>=2 then break
gg=gg+1
next
FFL.VarData("px")=px
FFL.VarData("pp1")=pp1
FFL.VarData("pp2")=pp2
%>
p1: px[1],linethick0,colorgreen;
p2: px[2],linethick0,colorgreen;
p1p: ref(prsck,pp1),colorgreen;
p2p: ref(prsck,pp2),colorgreen;
//


由 cgjj 在 2012-03-12 22:38 發表:

回覆: 程式出錯,請給予指點

引用:
最初由 mhlin999 發表
主要想知道當天收盤價以上的2個壓力點位置
壓力點的定義是:今天收盤價大於明天收盤價時,今天收盤價看作壓力點
未來上漲時會遇到的最近的2個壓力點想表達在上方文字欄
寫好後編譯為調試通過,但執行時出現"腳本錯誤"等訊息,2次後會關掉奇狐
祈請幫忙修正錯誤程式,先此致謝!

//壓力--最近的, 前一個
DRAWSL(C>refx(C,1) and not(islastbar),C,0,3,3),color44dddd;
prsck:if(C>refx(C,1),C,-1),linethick0,colorwhite;
prspp:=barslast(prsck<>-1),linethick0,colorwhite;
prs:ref(prsck,prspp),,linethick0,colorwhite;//最近的壓力
drawtext(cross(refx(C,1),prs),prs,'過壓'),shift1,linethick0,colorwhite;
pr2:ref(prsck,ref(prspp,prspp+1)+prspp+1),linethick0,colorwhite;//前一個壓力
px:=prsck,linethick0;
cc:=C,linethick0;
pp1:=0;
pp2:=0;
<%
prsck = FFL.VarData("prsck")
px = FFL.VarData("px")
CC = FFL.VarData("CC")
pp1 = FFL.VarData("pp1")
pp2 = FFL.VarData("pp2")
prsUB=Ubound(prsck)
prsLB=Lbound(prsck)
pn=0
gg=1
for kk = prsLB to prsUB
if prsck[prsUB-gg]<=cc[prsUB] then px[prsUB-gg]=-1
if prsck[prsUB-gg]>cc[prsUB] then pn=pn+1
if prsck[prsUB-gg]>cc[prsUB] and pn=1 then pp1=prsUB-gg
if prsck[prsUB-gg]>cc[prsUB] and pn=2 then pp2=prsUB-gg
if pn>=2 then break
gg=gg+1
next
FFL.VarData("px")=px
FFL.VarData("pp1")=pp1
FFL.VarData("pp2")=pp2
%>
p1: px[1],linethick0,colorgreen;
p2: px[2],linethick0,colorgreen;
p1p: ref(prsck,pp1),colorgreen;
p2p: ref(prsck,pp2),colorgreen;
//



<% 到 %> 之間是嵌入奇狐內的 vbscript 程式碼
vbscript 的程式語法與奇狐的公式程式語法並不相同
您把奇狐用的語法放入了 vbscript 程式碼片段之中
當然會出現 "腳本錯誤"

奇狐數列可用 XX[n] 存取, 但 vbscript 中需以 XX(n) 來存取
注意: 奇狐數列自壹數起, vbscript 數列自零數起

公式寫作問題, 麻煩請到 [ 指標公式 > 問題交流 ] 區發問
謝謝!


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


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

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