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

註冊日期: Nov 2007
來  自:
文章數量: 53

老师: 请教一个函数问题

老师: 请教一个函数问题
for i=3+1 to datacount do begin
if fc[i]>mhn[i-1] then
hld[i]:=1
else if fc[i]<mln[i-1] then
hld[i]:=-1
else
hld[i]:=hld[i-1];
end; 这个函数总是出现这个问题;
k线指标组下标超界或超出有效数据区间:
这是什么问题 有解决的方法吗?
感谢

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

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

回覆: 老师: 请教一个函数问题

引用:
最初由 a666666 發表
老师: 请教一个函数问题
for i=3+1 to datacount do begin
if fc[i]>mhn[i-1] then
hld[i]:=1
else if fc[i]<mln[i-1] then
hld[i]:=-1
else
hld[i]:=hld[i-1];
end; 这个函数总是出现这个问题;
k线指标组下标超界或超出有效数据区间:
这是什么问题 有解决的方法吗?
感谢



代表您迴圈存取數列的範圍越界了

例如:
MM:MA(C,5);

MM數列有效起始位址為5, 您若用 MM[4] 去存取就越界了
註: 可用 LBOUND 函數來取得數列有效起始位址

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

註冊日期: Nov 2007
來  自:
文章數量: 53

太难了 没用过这函数 不知函数"LBOUND()"怎样用 用在何处改在什么地方 自己实在无法办到

for i=3+1 to datacount do begin
if fc[i]>mhn[i-1] then
hld[i]:=1
else if fc[i]<mln[i-1] then
hld[i]:=-1
else
hld[i]:=hld[i-1];
end;



希望 老师能把上面这个用"LBOUND()"函数或其它函数改下 感谢

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

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

引用:
最初由 a666666 發表
太难了 没用过这函数 不知函数"LBOUND()"怎样用 用在何处改在什么地方 自己实在无法办到

for i=3+1 to datacount do begin
if fc[i]>mhn[i-1] then
hld[i]:=1
else if fc[i]<mln[i-1] then
hld[i]:=-1
else
hld[i]:=hld[i-1];
end;



希望 老师能把上面这个用"LBOUND()"函数或其它函数改下 感谢



沒見完整的公式, 是無法協助您修改的

您去試試這兩行, 觀察一下 LB 的數值(先將N設5, 再將N設10)
MM:MA(C,N);
LB:lbound(MM);

迴圈起點必須是這四個數列起點的最大值, 否則就會越界
fc, mhn, mln, hid

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

註冊日期: Nov 2007
來  自:
文章數量: 53

老师 以下这就是完整公式:

fc:=close;
mhn:=ma(high,n1);
mln:=ma(low,n1);
hld:=if(close>ref(MA(H,N1),1),1,if(close<ref(MA(L,N1),1),-1,ref(hld,1)));
for i=n1+1 to datacount do begin
if fc[i]>mhn[i-1] then
hld[i]:=1
else if fc[i]<mln[i-1] then
hld[i]:=-1
else
hld[i]:=hld[i-1];
end;
hilo:if(hld=-1,ma(h,n1),ma(l,N1))LINETHICK2;
感谢

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

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

引用:
最初由 a666666 發表
老师 以下这就是完整公式:

fc:=close;
mhn:=ma(high,n1);
mln:=ma(low,n1);
hld:=if(close>ref(MA(H,N1),1),1,if(close<ref(MA(L,N1),1),-1,ref(hld,1)));
for i=n1+1 to datacount do begin
if fc[i]>mhn[i-1] then
hld[i]:=1
else if fc[i]<mln[i-1] then
hld[i]:=-1
else
hld[i]:=hld[i-1];
end;
hilo:if(hld=-1,ma(h,n1),ma(l,N1))LINETHICK2;
感谢



這個公式是錯的
因為 hld 變數尚未被定義, 就被帶入拿來計算

或者
它不是奇狐也不是飛狐的公式

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

註冊日期: Nov 2007
來  自:
文章數量: 53

老师: 这个公式我在用 不是不能用 就是夸周期用时出现以下问题

k线指标组下标超界或超出有效数据区间:

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

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

引用:
最初由 a666666 發表
老师: 这个公式我在用 不是不能用 就是夸周期用时出现以下问题

k线指标组下标超界或超出有效数据区间:



可以跑不代表它是對的
再某些情況下 hld 會是無效變數

前段就有錯嚕, 改後段無意義

若這原碼不是給奇狐用的, 您會錯的渾然不知

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

註冊日期: Nov 2007
來  自:
文章數量: 53

老师:
是奇狐公式 用了很长时间 可能有未来意义在里面 用的好 是好东西 用的不好...... 没办法 做股期总要相信一总技术分析公式指标 谢谢老师改改

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

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

fc:=close;
mhn:=ma(high,n1);
mln:=ma(low,n1);
hld:if(close>ref(MA(H,N1),1),1,if(close<ref(MA(L,N1),1),-1,-999999));
VERTLINE(hld=-999999) colorred linedot;

先單獨跑上面這段公式(縮小K棒, 輪換商品跑)
找到商品有發現被標紅色垂直線的地方(就是有錯的地方)

找到後您再將公式換成跑下面這段(僅跑這四行)
fc:=close;
mhn:=ma(high,n1);
mln:=ma(low,n1);
hld:if(close>ref(MA(H,N1),1),1,if(close<ref(MA(L,N1),1),-1,ref(hld,1)));

您就會發覺 hld 此時沒有輸出(無效數列)

也就是說後續的迴圈, 會有機會存取到無效的數列位置
結果輕則數據錯亂, 重則造成軟體錯誤當掉(記憶體溢位)

但實際受傷害比較重的, 往往會是輕的結果
錯的讓您渾然不知 ......

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

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
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.  聯絡我們