 |
hamson
中級會員
註冊日期: Apr 2004
來 自:
文章數量: 26 |
|
[求救]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;
放在迴圈中跑會造成電腦嚴重延遲現象,請問該如何修正?
|
|
向版主報告此篇 |  |
|
2009-12-31 15:30 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18246 |
|
回覆: [求救]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
|
|
向版主報告此篇 |  |
|
2009-12-31 16:43 |
|
|
|  |
 |
hamson
中級會員
註冊日期: Apr 2004
來 自:
文章數量: 26 |
|
依板主指示以
HCK:=K>ref(K,1) and K>refx(K,1);
SP:=BARSLAST(HCK);
KH:ref(H,SP);
方式帶入迴圈中並於盤後測試,速度有些微提昇但仍就慢,約延遲1分鐘,顯然在即時盤中會更嚴重拖慢速度,不知版主是否有更好計算更快的寫法來抓"當根k棒"k值的大於d值時之值
以上,還請解惑,祝均安
備註: 電腦cpu是coro2記憶體 2GB 這應該無關吧
|
|
向版主報告此篇 |  |
|
2010-01-02 14:10 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|