到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > 類拋物線轉向問題
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
m3energy
中級會員

註冊日期: Sep 2004
來  自:
文章數量: 35

類拋物線轉向問題

版主,你好:

底下程式是類似拋物線轉向系統,我是參考討論區的「SAR轉向問題」來修改。
但在計算「明yar」時,算出來的數值有誤,不知道尚需改善那些地方,可否請版主協助指導。
PS:會想把下降趨勢採用YAR運算2次,而非直接用AF=0.3,是想要讓其運算速度快一點,觀察是否有差異性。



if datacount<5 then exit;
CC:=C; HH:=H; LL:=L;
HH3:=HHV(H,3); LL3:=LLV(L,3);
RHCK:=H>ref(H,1);
RLCK:=L<ref(L,1);
DIR:=CC[3]>=CC[1];
DIR:=1-(DIR=0)*2;
YAR:CC*0,CIRCLEDOT,COLOR92DEA9;
x:=setlbound(YAR,4);
明YAR:YAR,circledot,coloryellow,linethick1,shift1; //繪圖用,檢確"明yar"有無正確。

//初始方向與EP設定
if DIR=1 then begin
yar[4]:=LL3[3]; ep:=HH3[3];
end else begin
yar[4]:=HH3[3]; ep:=LL3[3];
end;

//主變數區初始化
af:=0.02;
NowDir:=DIR;
SwapF:=0;
NewYar:=0;
tmpYar:=0;
PrAFup:YAR*0,linethick0;
PrAFdn:YAR*0,linethick0;

for i=4+1 to datacount do begin
if SwapF=1 then begin
yar[i]:=NewYar;
SwapF:=0;
af:=0.02;
NowDir:=-NowDir;
end else begin
if NowDir=1 then begin
PrAFup[i]:=AF;
PrAFdn[i]:=0;
yar[i] := yar[i-1] + af * (ep - yar[i-1]);
if RHCK[i] then af := af + 0.02;
if HH[i] > ep then ep := HH[i];
if af > 0.2 then af := 0.2;

end else begin

PrAFdn[i]:=AF;
PrAFup[i]:=0;
if RLCK[i] then begin
af := af + 0.015;
tmpYar := yar[i-1] + af * (ep - yar[i-1]); //第一次YAR運算
af := af + 0.015;
yar[i] := tmpYar + af * (ep - tmpYar); //第二次YAR運算
end else begin
yar[i] := yar[i-1] + af * (ep - yar[i-1]);
end;

if LL[i] < ep then ep := LL[i];
if af > 0.2 then af := 0.2;
end;
end;

if NowDir=1 then begin
if LL[i] < yar[i] then begin
SwapF := 1; NewYar := ep; ep := LL[i];
end;
end else begin
if HH[i] > yar[i] then begin
SwapF := 1; NewYar := ep; ep := HH[i];
end;
end;

// 明YAR
if SwapF=1 then
明yar[i] := NewYar
else begin
if NowDir=1 then begin
//上升趨勢
明yar[i] := yar[i] + af * (ep - yar[i]);
end else begin
//下降趨勢
if RLCK[i] then begin
tmpAF := af + 0.015;
tmpYar1 := yar[i] + tmpAF * (ep - yar[i]);
tmpAF := tmpAF + 0.015;
明yar[i] := tmpYar1 + tmpAF * (ep - tmpYar1);
end else begin
明yar[i] := yar[i] + af * (ep - yar[i]);
end;
end;
end;
end;

向版主報告此篇 | 查IP位址
Old Post 2025-11-02 14:36
m3energy 現在離線 點選這裡查看 m3energy 的個人資料 點選這裡給 m3energy 傳送一條短訊 查找更多關於 m3energy 的文章 增加 m3energy 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18251

回覆: 類拋物線轉向問題

引用:
最初由 m3energy 發表
版主,你好:

底下程式是類似拋物線轉向系統,我是參考討論區的「SAR轉向問題」來修改。
但在計算「明yar」時,算出來的數值有誤,不知道尚需改善那些地方,可否請版主協助指導。
PS:會想把下降趨勢採用YAR運算2次,而非直接用AF=0.3,是想要讓其運算速度快一點,觀察是否有差異性。



if datacount<5 then exit;
CC:=C; HH:=H; LL:=L;
HH3:=HHV(H,3); LL3:=LLV(L,3);
RHCK:=H>ref(H,1);
RLCK:=L<ref(L,1);
DIR:=CC[3]>=CC[1];
DIR:=1-(DIR=0)*2;
YAR:CC*0,CIRCLEDOT,COLOR92DEA9;
x:=setlbound(YAR,4);
明YAR:YAR,circledot,coloryellow,linethick1,shift1; //繪圖用,檢確"明yar"有無正確。

//初始方向與EP設定
if DIR=1 then begin
yar[4]:=LL3[3]; ep:=HH3[3];
end else begin
yar[4]:=HH3[3]; ep:=LL3[3];
end;

//主變數區初始化
af:=0.02;
NowDir:=DIR;
SwapF:=0;
NewYar:=0;
tmpYar:=0;
PrAFup:YAR*0,linethick0;
PrAFdn:YAR*0,linethick0;

for i=4+1 to datacount do begin
if SwapF=1 then begin
yar[i]:=NewYar;
SwapF:=0;
af:=0.02;
NowDir:=-NowDir;
end else begin
if NowDir=1 then begin
PrAFup[i]:=AF;
PrAFdn[i]:=0;
yar[i] := yar[i-1] + af * (ep - yar[i-1]);
if RHCK[i] then af := af + 0.02;
if HH[i] > ep then ep := HH[i];
if af > 0.2 then af := 0.2;

end else begin

PrAFdn[i]:=AF;
PrAFup[i]:=0;
if RLCK[i] then begin
af := af + 0.015;
tmpYar := yar[i-1] + af * (ep - yar[i-1]); //第一次YAR運算
af := af + 0.015;
yar[i] := tmpYar + af * (ep - tmpYar); //第二次YAR運算
end else begin
yar[i] := yar[i-1] + af * (ep - yar[i-1]);
end;

if LL[i] < ep then ep := LL[i];
if af > 0.2 then af := 0.2;
end;
end;

if NowDir=1 then begin
if LL[i] < yar[i] then begin
SwapF := 1; NewYar := ep; ep := LL[i];
end;
end else begin
if HH[i] > yar[i] then begin
SwapF := 1; NewYar := ep; ep := HH[i];
end;
end;

// 明YAR
if SwapF=1 then
明yar[i] := NewYar
else begin
if NowDir=1 then begin
//上升趨勢
明yar[i] := yar[i] + af * (ep - yar[i]);
end else begin
//下降趨勢
if RLCK[i] then begin
tmpAF := af + 0.015;
tmpYar1 := yar[i] + tmpAF * (ep - yar[i]);
tmpAF := tmpAF + 0.015;
明yar[i] := tmpYar1 + tmpAF * (ep - tmpYar1);
end else begin
明yar[i] := yar[i] + af * (ep - yar[i]);
end;
end;
end;
end;



並不適合這樣改呀!!!

RLCK 定義是 L<ref(L,1)
原先的公式在算 yar 時,並不需要用到 RLCK

而你改後的公式,在 NowDir=-1 時
算 yar 時,會需要用到 RLCK
造成算 明日yar 時,也會需要用到明日 RLCK
這會用到未來值做計算呀XDDDDDD

而你目前的程式碼寫的是錯誤的!
是用到今日RLCK值,去算明日yar,所以求到的值是錯誤的!

公式的邏輯規則,會去決定能否計算明日值!

向版主報告此篇 | 查IP位址
Old Post 2025-11-02 22:06
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
m3energy
中級會員

註冊日期: Sep 2004
來  自:
文章數量: 35

>.<" ,收到,我重新整理相關邏輯概念。

向版主報告此篇 | 查IP位址
Old Post 2025-11-03 18:27
m3energy 現在離線 點選這裡查看 m3energy 的個人資料 點選這裡給 m3energy 傳送一條短訊 查找更多關於 m3energy 的文章 增加 m3energy 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為14:46 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們