  | 
	
	
	
	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 
	來  自:  
	文章數量: 18211  | 
	
	
		
	    | 
			 回覆: [求救]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.   聯絡我們
 
 |