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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [求救]exist (http://www.chiefox.com.tw/bbs/showthread.php?threadid=12821)


由 hamson 在 2009-12-31 15:30 發表:

[求救]exist

即時盤用exist尋找當根k線曾經出現之最高值,如在5分鐘k線中曾經出現k值>d值,即以此最高k值為計算依據即使收盤該k值位大於d值
RR:=if(exist(k[i]>=20,1),1,0);
GG:=max(k[i],20);
KK:=if(RR,GG,k[i]);
mm[i]:=KK[i];end;
放在迴圈中跑會造成電腦嚴重延遲現象,請問該如何修正?


由 cgjj 在 2009-12-31 16:43 發表:

回覆: [求救]exist

引用:
最初由 hamson 發表
即時盤用exist尋找當根k線曾經出現之最高值,如在5分鐘k線中曾經出現k值>d值,即以此最高k值為計算依據即使收盤該k值位大於d值
RR:=if(exist(k[i]>=20,1),1,0);
GG:=max(k[i],20);
KK:=if(RR,GG,k[i]);
mm[i]:=KK[i];end;
放在迴圈中跑會造成電腦嚴重延遲現象,請問該如何修正?



迴圈中不要用 if(cond,a,b)
if(cond,a,b) 是給數列對數列運算用的
改用 if ... then 就可提升速度幾十倍
if ... then 是單值對單值的運算, 故能快上很多
exist 基本上也不宜放入迴圈當中

這需求寫法, 等一下會在此回應您
http://www.chiefox.com.tw/bbs/showt...&threadid=12823


由 hamson 在 2010-01-02 14:10 發表:

依板主指示以
HCK:=K>ref(K,1) and K>refx(K,1);
SP:=BARSLAST(HCK);
KH:ref(H,SP);
方式帶入迴圈中並於盤後測試,速度有些微提昇但仍就慢,約延遲1分鐘,顯然在即時盤中會更嚴重拖慢速度,不知版主是否有更好計算更快的寫法來抓"當根k棒"k值的大於d值時之值
以上,還請解惑,祝均安
備註: 電腦cpu是coro2記憶體 2GB 這應該無關吧


由 cgjj 在 2010-01-02 14:26 發表:

引用:
最初由 hamson 發表
依板主指示以
HCK:=K>ref(K,1) and K>refx(K,1);
SP:=BARSLAST(HCK);
KH:ref(H,SP);
方式帶入迴圈中並於盤後測試,速度有些微提昇但仍就慢,約延遲1分鐘,顯然在即時盤中會更嚴重拖慢速度,不知版主是否有更好計算更快的寫法來抓"當根k棒"k值的大於d值時之值
以上,還請解惑,祝均安
備註: 電腦cpu是coro2記憶體 2GB 這應該無關吧



這邊回您的範例
http://www.chiefox.com.tw/bbs/showt...&threadid=12823

是不需要迴圈的唷
僅用那幾行就可跑出結果


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


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

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