請教AmiBroker高手,關於時間函數。
AmiBroker的時間函數有 month()、day()、Hour()、Minute() 、Second() 等..現在小弟想利用 function 自訂15分鐘的函數,請問要如何寫?
謝謝大大們。
{:5_260:} 例如BarsSince(Hour() != Ref(Hour(),-1));
小弟想將其改為BarsSince(15分鐘() != Ref(15分鐘(),-1));
感恩~
{:5_260:} 回復 2# lu0811
程式片段供您參考,不知合不合用
TM = T1 * in1Minute;
SetChartOptions(0,0,chartGrid30|chartGrid70);
TimeFrameSet(TM);
M15O = Open;
M15H = High;
M15L = Low;
M15C = Close;
TimeFrameRestore(); 回復 3# yccecily
謝謝yccecily大您的程式碼。{:5_260:}
不過小弟是需要function來自訂函數,弄成類似像Hour()的函數,自訂一個 fifteenMinute()。 本帖最後由 enochyu 於 11-12-28 11:46 PM 編輯
野人獻曝一下 ~ {:4_91:}
------
建立一個 function 如下
function getMinuteBlock( _minuteUnit )
{
_eyMinuteBlock = -1;
if ( ( _minuteUnit > 0 ) && ( _minuteUnit < 600 ) )
_eyMinuteBlock = floor( ( ( Hour() * 60 )+ Minute() ) / _minuteUnit );
return _eyMinuteBlock;
}
說明:
以24H為概念,假設以 15M 為單位,
--> 00:00:00 ~ 00:14:59 傳回 0
--> 00:15:00 ~ 00:29:59 傳回 1
--> 00:30:00 ~ 00:44:59 傳回 2
... 以此類推。
------
為單位使用範例
getMinuteBlock( 15 );
// 假設於5分鐘線圖中,該K棒時間為09:00,則回傳值為 36
// 假設於5分鐘線圖中,該K棒時間為09:05,則回傳值為 36
// 假設於5分鐘線圖中,該K棒時間為09:10,則回傳值為 36
// 假設於5分鐘線圖中,該K棒時間為09:15,則回傳值為 37 ... 以此類推
Ref( getMinuteBlock( 15 ), -1 );
// 假設於5分鐘線圖中,該K棒時間為09:00,則回傳值為 35
// 假設於5分鐘線圖中,該K棒時間為09:05,則回傳值為 36
// 假設於5分鐘線圖中,該K棒時間為09:10,則回傳值為 36
// 假設於5分鐘線圖中,該K棒時間為09:15,則回傳值為 36 ... 以此類推
為單位使用範例
getMinuteBlock( 6 );
// 假設於5分鐘線圖中,該K棒時間為09:00,則回傳值為 90
// 假設於5分鐘線圖中,該K棒時間為09:05,則回傳值為 90
// 假設於5分鐘線圖中,該K棒時間為09:10,則回傳值為 91
// 假設於5分鐘線圖中,該K棒時間為09:15,則回傳值為 92 ... 以此類推
Ref( getMinuteBlock( 6 ), -1 );
// 假設於5分鐘線圖中,該K棒時間為09:00,則回傳值為 89
// 假設於5分鐘線圖中,該K棒時間為09:05,則回傳值為 90
// 假設於5分鐘線圖中,該K棒時間為09:10,則回傳值為 90
// 假設於5分鐘線圖中,該K棒時間為09:15,則回傳值為 91 ... 以此類推
------
所以此函式可以視您的需求,傳入任意的分鐘單位(需介於1~599),即會回傳 00:00:00 至該根K棒的[單位數]。
請笑納 ~ 本帖最後由 lu0811 於 11-12-29 12:33 AM 編輯
回復 5# enochyu
萬分感謝enochyu大,經小弟測試後完全可以。
enochyu大真是太太太強了!!
再次致上感謝之意~~
{:5_260:} 回復 6# lu0811
you are wellcome ~ ^o^
若覺得函式名稱太長想讓名稱變得與內建的 Minute() 較接近,可以變化如下,
// 底層函式
function getMinuteBlock( _minuteUnit )
{
_eyMinuteBlock = -1;
if ( ( _minuteUnit > 0 ) && ( _minuteUnit < 600 ) )
_eyMinuteBlock = floor( ( ( Hour() * 60 )+ Minute() ) / _minuteUnit );
return _eyMinuteBlock;
}
// 以 為單位之函式
function Minute2()
{
return getMinuteBlock( 2 );
}
// 以 為單位之函式
function Minute3()
{
return getMinuteBlock( 3 );
}
// ...
// 以 為單位之函式
function Minute15()
{
return getMinuteBlock( 15 );
}
// ... 以此類推,任君高興自己定義囉!
------
使用方式,
Minute15(); // 結果同 getMinuteBlock( 15 );
Ref( Minute15(), -1 ); // 結果同 Ref( getMinuteBlock( 15 ), -1 );
------
請參考。 本帖最後由 lu0811 於 11-12-29 12:32 AM 編輯
回復 7# enochyu
原 getMinuteBlock() 就已經很完美了,
想不到enochyu大除此之外還再附贈一個加強版。
一樣讚啦!這個加強版經小弟測試後一樣OK。
{:5_260:}
you are wellcome ~ ^o^
若覺得函式名稱太長想讓名稱變得與內建的 Minute() 較接近,可 ...
enochyu 發表於 11-12-29 12:12 AM http://www.coco-in.net/images/common/back.gif
enochyu 大大真是太厲害了
大大會寫外期下單機嗎
有機會的話,合作一下 {:4_113:} 我有喔 ~ 用 VC 寫的捏 我有喔 ~ 用 VC 寫的捏
saucer 發表於 11-12-29 01:09 AM http://www.coco-in.net/images/common/back.gif
讚喔! 回復 9# kilroy
外期下單這部分小弟很有興趣,若有機會合作小弟也很樂意,只是個人時間上沒這麼彈性,怕耽誤寬大的賺錢良機 ~ 哈哈 {:4_140:}
套您一句話 "功成不必在我,在各人的的修為",相信有能力(時間)分享絕對是一種幸福 ~ {:4_209:} 我有喔 ~ 用 VC 寫的捏
saucer 發表於 11-12-29 01:09 AM http://www.coco-in.net/images/common/back.gif
只要是有 API的函數庫等資料
大大都可以寫得出來嗎
P.S. 不管國內外期貨商
---
讚喔! {:4_113:} 回復 8# lu0811
我比較好奇這可以怎麼用??跟改TimeFrame有什麼不一樣的應用嗎? 回復 14# GnuHomot
BarsSince(15分鐘() != Ref(15分鐘(),-1));
就是2樓說的用法啊。
頁:
[1]