  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		amd
 
 
  註冊時間: 2003-07-20 文章: 54
 
  第 1 樓
  | 
		
			
				 發表於: 星期六 八月 16, 2014 11:19 pm    文章主題: 請問各位 先進 ∼ 如何 抓 上 下 點,並存檔∼詳如 說明 | 
				     | 
			 
			
				
  | 
			 
			
				例:
 
60 , 66 , 120 , 240 , 200 , 180 , 190 , 210 , 170 , 150 ....
 
 
要有轉變趨勢才再記錄
 
 
例 
 
 
第一筆 記錄 是 60 (決定它上的是 66 ),記在 "下" 的欄位
 
 
接下來一直到 240 才要再記錄(決定它下的是 200),記在 "上" 的欄位
 
 
接下來一直到 190 才要再記錄(決定它上的是 210),記在 "下" 的欄位
 
 
接下來一直到 210 才要再記錄(決定它下的是 170),記在 "上" 的欄位
 
 
每筆 中間 不一定是上一筆、下一筆,有可能是經過好多數字之後∼
 
 
大概如下示意圖
 
 
240 
 
200   200   210
 
180   190        
 
120   180        170
 
 66    170                             
 
 60    160        150
 
 
 
 
我是設  下、  上、     變化  3欄位
 
               60              66
 
                        240     200
 
                    .
 
 
如果用 上 下 來決定要不要記錄,這樣會 把中間不要記的也記下來,會造成錯誤數據
 
                    .
 
但條件設完之後總有卡住,所以 請問各位先進 大大 要如何 才能達到我要的結果∼謝謝! | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		asd89839032
 
 
  註冊時間: 2012-10-15 文章: 49
 
  第 2 樓
  | 
		
			
				 發表於: 星期一 八月 18, 2014 9:44 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				問:
 
1.要記錄的是否為 240 , 180 , 210 三筆? (240上,180下,210上)
 
2.開頭與結尾值應該要怎麼判斷才是你要的?還是無條件成立?
 
3.條件的話應該是..... 1 2 3 4 5 , 1 > 2 and 3 > 2 , 2 填入上;1<2 and 3 < 2 ,2 填入下 _________________ 菜鳥路過... | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		perry
 
 
  註冊時間: 2014-07-20 文章: 203
 
  第 3 樓
  | 
		
			
				 發表於: 星期一 八月 18, 2014 12:10 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				crea dbf table1 (f_1 n(5),f_2 n(5),f_k c(2))
 
每次讀2筆資料
 
a1,a2,mk
 
====
 
*test1.mount -> 60,66,120,240...
 
60,66 ( 60<66 )產生下的記號並新增一筆 60,66,mk='下'
 
66,120 ( 66<120 )也是下不記錄
 
120,240 ( 120<240 )也是下不記錄
 
240,200 ( 240>200 )產生上的記號新增一筆 240,200,'上'
 
下一次要新增記錄的 a1<a2 的資料即 '下'
 
 	  | 代碼: | 	 		  
 
sele 0
 
use table1
 
sele 0
 
use test1 alia aa agai
 
sele 0
 
use test1 alia bb agai
 
go top
 
sum 1 to j
 
i=1
 
do whil i<j
 
    go i
 
    a1=mount
 
    sele aa
 
    go (i+1)
 
    a2=mount
 
    if i=1
 
        mk=iif(a1>a2,'上',iif(a1<a2,'下','無'))
 
        if a1#a2
 
            inse into table1 valu (a1,a2,mk)
 
        endi
 
    else
 
        if (a1#a2 and mk='無') or (a1>a2 and mk='下') or (a1<a2 and mk='上')
 
            mk=iif(a1>a2,'上','下')
 
            inse into table1 valu (a1,a2,mk)
 
        endi
 
    endi
 
    sele bb
 
    i=i+1
 
enddo
 
 | 	  
 
若樓主是這個意思,用 sql 語法應能做到 = =''' | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		amd
 
 
  註冊時間: 2003-07-20 文章: 54
 
  第 4 樓
  | 
		 | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		perry
 
 
  註冊時間: 2014-07-20 文章: 203
 
  第 5 樓
  | 
		
			
				 發表於: 星期二 八月 19, 2014 10:04 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | 代碼: | 	 		  
 
sele 0
 
crea dbf table1 (f_1 n(5),f_2 n(5),f_k c(2))
 
sele 0
 
use test1 alia aa agai
 
go top
 
i=0
 
a3=6  && Range
 
scan
 
   i=i+1
 
   a1=mount
 
   if i=1
 
      sele table1
 
      appe blank
 
      repl f_1 with a1
 
   else
 
      sele table1
 
      if empt(table1.f_k)
 
         do case
 
            case a1-table1.f_1>a3 &&上漲超過 Range
 
               *f_1 為下檔價位,f_2 為下次判斷上檔價位用
 
               repl f_2 with a1,f_k with '下'
 
            case table1.f_1-a1>a3 &&下跌超過 Range
 
               *f_1 為上檔價位,f_2 為下次判斷下檔價位用
 
               repl f_2 with a1,f_k with '上'
 
         endc
 
      else
 
         do case
 
            case table1.f_k='上' and a1-table1.f_2>a3 &&上漲超過 Range
 
                a0=table1.f_2
 
                appe blank
 
                repl f_1 with a0,f_2 with a1,f_k with '下'
 
            case table1.f_k='下' and table1.f_2-a1>a3 &&下跌超過 Range
 
               a0=table1.f_2
 
               appe blank
 
               repl f_1 with a0,f_2 with a1,f_k with '上'
 
         endc
 
      endi
 
   endi
 
   sele aa
 
ends
 
 | 	 
  | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		amd
 
 
  註冊時間: 2003-07-20 文章: 54
 
  第 6 樓
  | 
		
			
				 發表於: 星期二 八月 19, 2014 7:04 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				謝謝上面大大的回應∼
 
以下僅以一種 來表示小弟的寫法:
 
 
Do case 
 
 
Case 漲跌幅 < 0 and 最低價 > 100 and 最低價 <= ( 昨成交高 -6 ) and 高 = 0 
 
 
Replace 高 With 昨成交高
 
 
Case 漲跌幅 < 0 and 最低價 > 100 and 最低價 <= ( 昨成交高-6 ) and ( 昨成交高 < 高 * 1.03 ) and 高 > 0 
 
 
Replace 高 With 昨成交高 
 
 
Endcase | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |