baokyo 發表於 11-1-26 15:26

請教AFL Library 寫技術指標的問題....

各位大大好:
      小弟現在想使用ADK裡面的AFL Library功能去寫自己的技術指標,我參考了範例Function.cpp裡面的"ExampleEMA",
的範例方法去寫指標。 但是我再編譯完成後,將DLL註冊進去Amibroker裡面,卻發現畫出的技術圖有問題(假設以125天為周期計算,畫出的圖前面125天都沒資料),因為我是參考範例,連範例都有問題我就不知道該怎麼下手了,請問有高人可以解答嗎?(希望綠茶妹可以幫幫忙><)
以下附圖


ashell 發表於 11-1-26 16:51

這不是範例有問題啦,
計算十日的平均數,至少要有十日的收盤價才能算,
所以會沒有前十日的資料,
計算125日亦同,還有滿125天之前,
不會足夠的資料來繪出圖形。

baokyo 發表於 11-1-26 20:13

To: ashell大
我有匯入超過的資料,你可以仔細看第三張圖,他下面的調整桿是在中間,不是在最前面,應該是說我拉動調整桿的時候就是會少前面的那些資料,請問ashell有用AFL Library嗎? 可否提供範例?

kilroy 發表於 11-1-26 21:05

小弟以為直接寫入 AFL 裡就可以了說
跟 ADK 好像沒關係呼?! (抱歉功力太淺)

以下是範例程式碼

function T3(price,periods) //AMA-based
{
        s = 0.618;
        periods = 2/(periods+1);
        e1=AMA(price,periods);
        e2=AMA(e1,Periods);
        e3=AMA(e2,Periods);
        e4=AMA(e3,Periods);
        e5=AMA(e4,Periods);
        e6=AMA(e5,Periods);
        c1=-s*s*s;
        c2=3*s*s+3*s*s*s;
        c3=-6*s*s-3*s-3*s*s*s;
        c4=1+3*s+s*s*s+3*s*s;
        Ti3=c1*e6+c2*e5+c3*e4+c4*e3;
        return ti3;
}



語法 T3(price,periods)


不知道有沒有幫助呢 (希望我是看懂大大的問題才回覆的XD)

ashell 發表於 11-1-26 21:12

這樣我就不知道是什麼原因了,
不好意思幫不上忙,
還有你說的有用AFL Library是什麼意思,
是需要網址嗎?
http://www.amibroker.com/library/list.php

baokyo 發表於 11-1-26 21:40

ADK 是開放自己建立Plugin的C/C++函式庫,AmiBroker Development Kit (C/C++) ,
TO: kilroy
      我試過同樣的指標在Amibroker裡面是正常的,而寫成PLUGIN的模式就會有問題,而且我是依據官方給的文件去建立的。
為啥要這樣做的原因,是因為有些客戶自己的策略他希望不要把程式碼流出去,希望使用DLL提供給其他的網友用。

kilroy 發表於 11-1-26 22:20

ADK 是開放自己建立Plugin的C/C++函式庫,AmiBroker Development Kit (C/C++) ,
TO: kilroy
      我試過 ...
baokyo 發表於 11-1-26 09:40 PM http://coco-in.net/images/common/back.gif


    喔喔喔 原來是因為 「有些客戶自己的策略他希望不要把程式碼流出去,希望使用DLL提供給其他的網友用」

    小弟了了,感謝大大回覆唷~


ADK 這個不知道大大會不會寫 data plugin 呢? 感謝感謝

cjlin 發表於 11-1-27 01:39

本帖最後由 cjlin 於 11-1-27 01:49 AM 編輯

因為ArgsTable丟進來的是螢幕上顯示範圍的區域資料,
以你的例子來說,前面被省略的部份是因為你在code裡把前面125個位置填EMPTY_VAL

你需要改的是拿原本的data array來處理,而不是只處理參數裡面的資料,
如果只要Close,用gSite.GetStockArray( 3 )取回來的就是全部的close data array (in float),
大小記得要用gSite.GetArraySize()拿喔
如果想要用這個function處理其他data array,像Open, High之類的話,
我建議你用其他的方法丟參數...有時候hard code是種藝術{:5_216:}

kilroy 發表於 11-1-29 12:05

因為ArgsTable丟進來的是螢幕上顯示範圍的區域資料,
以你的例子來說,前面被省略的部份是因為你在code裡把前 ...
cjlin 發表於 11-1-27 01:39 AM http://coco-in.net/images/common/back.gif


   會寫程式真好~~{:4_161:}

baokyo 發表於 11-1-29 21:23

本帖最後由 baokyo 於 11-1-29 09:26 PM 編輯

CJ大我照你說的做可是結果一樣耶 可否幫我看看阿 ?求救><




前面150 Bars 一樣空了

nikej 發表於 11-1-29 22:09

回復 10# baokyo


你講廢話嗎 {:4_86:}

if (i<per) 你把它設 empty 當然前面就沒東西啊

容我問一句

你客戶是再打算賣指標嗎?

baokyo 發表於 11-1-29 22:25

本帖最後由 baokyo 於 11-1-29 10:31 PM 編輯

但是不可能不設 if( i<per)我下面在做的事情是存取data 總不可能存取 小於0的陣列吧@@|||
為什麼做這樣的事情,因為指標都是要計算幾天前的資料,我這邊只是簡化掉,去作一些基本測試........
我是從一般的程式設計師轉做這東西,可能問了笨問題,請各位大大見諒。

nikej 發表於 11-1-30 00:10

本帖最後由 nikej 於 11-1-30 12:18 AM 編輯

知道不可能

就接受前面為空的事實

15MA前面會有14個空k道理一樣

EMA 是因為演算原理所致不會有空k

nikej 發表於 11-1-30 00:22

本帖最後由 nikej 於 11-1-30 12:30 AM 編輯

雞婆一下

客戶若是打算賣指標

良心勸勸他不要誤人了

特地花錢找人寫鎖讓人免費用機會蠻小的

baokyo 發表於 11-1-30 00:56

但是他前面真的有資料阿= ="
總不能遇到問題~~就閃過裝不知道~~
難道真的沒有人有用Ami Plugin 去寫指標嗎?
我想 他這樣做可能也是為了保護他自己的想法吧@@"
每個人都碼有不想說的東西,尤其是在這個市場上面...不是嗎?
頁: [1] 2
查看完整版本: 請教AFL Library 寫技術指標的問題....