奇狐社區論壇 總頁數 (2): [1] 2 »
在這個頁面顯示本主題全部的 19 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 請問關於時間的問題 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=3911)


由 kkkkkk 在 2005-09-04 11:28 發表:

請問關於時間的問題

DD:date,linethick0; //取得表上K線日期
D:datediff(DD,currentdate)=100;
兩日期相差天數A: DateDiff( 1050527 , 1050904 ) , Linethick0 ;
D1:currentdate-100,linethick0;
vertline(date=D1),colorwhite,pointdot;

問題1: 上面 D1 中的那個 100 是什麼? (顯然和 D 的 100 不同)
問題2: 如何能求得某一段時間內的K線數,例如自 1010101 至目前日期
問題三: 如何能在當前日期的前 100 根K 線處作一個垂直線的記號?


由 cgjj 在 2005-09-04 21:29 發表:

答1
此式 D1:currentdate-100
結果並非 currentdate 的前 100 天
而是 currentdate 的數值減掉100


答2
NN:=1050421;
XX:date=NN and (ref(date,1)<>NN or barpos=1);
K棒數:BARSLAST(XX=1);

答3
vertline(barpos=datacount-100);
//barpos 為該根K棒的序號
//datacount 為K棒總數


由 kkkkkk 在 2005-09-05 06:42 發表:

引用:
最初由 cgjj 發表
[B]答1
此式 D1:currentdate-100
結果並非 currentdate 的前 100 天
而是 currentdate 的數值減掉100


這是 currentdate 的說明

別名: 計算時的當前日期
所屬類別: 常數函數 參數數量: 0

計算時的當前日期
用法:
CURRENTDATE,返回計算時的日期,** 該日期是從1900年開始的天數 //是數值,例如2003年8月1日表示為 (1030801) //是日期而非數值 ???
注意:該函數返回常數

請問總版主,Currentdate到底在什麼樣的狀況下會變成數值或日期表示? 而變成數值後又如何換算回來成為 1050421 樣的日期呢? (如何從1900年去換回來呢?)


由 cgjj 在 2005-09-05 08:39 發表:

CURRENTDATE 是以數值格式來表達當前日期
奇狐不像 Excel 有日期型態的欄位可直接計算日期加減


由 kkkkkk 在 2005-09-05 09:46 發表:

引用:
最初由 cgjj 發表
CURRENTDATE 是以數值格式來表達當前日期
奇狐不像 Excel 有日期型態的欄位可直接計算日期加減



是的,不僅如此,奇狐還牽涉到交易日和自然日的問題,指標線(例如均線)在兩種日期座標之下有截然不同的pattern,我都採用交易日下的pattern,不知道對否?

像總版主上面的示例

NN:=1050421;
XX:date=NN and (ref(date,1)<>NN or barpos=1);
K棒數:BARSLAST(XX=1);

如果在交易日座標下,就無法算出自 1050101 (無交易日)到目前的K線數了,(有辦法自動過濾這些無交易日的方法嗎?)如果把座標定位成自然日,則無法得到原來公式的原樣,計算又有偏差,此外關於數值與常數的變幻莫測,也令我十分困擾,不知道是否也曾有狐友有過和我同樣的困擾?

例如
NN:=1050105;
XX:date=NN and (ref(date,1)<>NN or barpos=1);
K棒數:BARSLAST(XX=1); //K棒數值如何能轉變成純數值接棒下去?

vertline(barpos=datacount-K棒數); //K棒數160,但是這裡不能顯示如下列的結果
vertline(barpos=datacount-160);

一直打擾總版主,十分抱歉,請問是否在哪裡我能找到自己參悟用的進一步參考資料呢?


由 peter109 在 2005-09-05 10:59 發表:

這樣呢?

原碼:

DD
:=1050829;//參數 指定日期
DATEDIFF(CURRENTDATE,DD);//計算計算机日期到指定日期間隔天數
DATEDIFF(DATE,DD);//計算K線日期到指定日期間隔天數

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 cgjj 在 2005-09-05 11:14 發表:

NN:=1050423;
XX:=date>=NN and (ref(date,1)<>NN or barpos=1);
K棒數:BARSSINCE(XX=1);

這樣即可解決無法算出自無交易日到目前的K線數


由 jkdens1 在 2005-12-12 17:09 發表:

想請教版主:

若NN:=1051007;
DDL:NN+300; { 3個月後 }
vertline(date=DDL),colorwhite,;{3個月後 的時間位畫綫}

1.數字為1051307,如何改成1060107呢?

2.如何在未來的時間位置劃線?

謝謝


由 cgjj 在 2005-12-12 17:41 發表:

1. 這是數學問題吧

NN:=1051017;
AddM:=3;
DD:=mod(NN,100);
MM:=INTPART(mod(NN,10000)/100);
YY:=INTPART(NN/10000);
SetMM:=MM+AddM;
YY:=YY+INTPART(SetMM/12);
MM:=MOD(SetMM,12);
NewNN:YY*10000+MM*100+DD;

2.未來尚未到怎樣畫呀(沒K棒)
也不能100%保證該天有K棒呀
您可用公式於現有K棒畫線
再將其向右偏移(在未來K棒顯示)

 


由 jkdens1 在 2005-12-12 18:36 發表:

謝謝版主,我再試試看


由 jkdens1 在 2005-12-13 00:44 發表:

再請教版主

若 NN:1041015;
則 二個月後應為1041215

但計算出為何為1050015 呢

謝謝

公式

NN:1041015;
AddM:=2;
DD:=mod(NN,100);
MM:=INTPART(mod(NN,10000)/100);
YY:=INTPART(NN/10000);
SetMM:=MM+AddM;
YY:=YY+INTPART(SetMM/12);
MM:=MOD(SetMM,12);
二個月後:YY*10000+MM*100+DD;



由 cgjj 在 2005-12-13 02:50 發表:

將這行
MM:=MOD(SetMM,12);

修正為這樣即可
MM:=MOD(SetMM-1,12)+1;

這已不是在處理公式寫作問題了
是數學問題, 所以到此為止
其它有關日期的計算
讓您自行研究囉...


由 jkdens1 在 2005-12-13 09:15 發表:

再次謝謝版主


由 peter109 在 2005-12-13 10:22 發表:

d1:=1041015;
d2: D1970TODATE(DATETOD1970(d1)+61);

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 jkdens1 在 2005-12-13 11:01 發表:

謝謝peter109兄的回應


全部時間均為台灣時間, 現在時間為11:51 總頁數 (2): [1] 2 »
在這個頁面顯示本主題全部的 19 個文章


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

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