QQ731 發表於 11-1-29 23:41

請益HTS轉AB語法

請問在HTS中的 IF MARKETPOSITION>0 AND 進場條件xxxx THEN BUY END IF
HTS中可以表達出現在的倉位是=1 OR =-1 OR =0
但是在AB中,如何表達MARKETPOSITION>0 OR =-1 OR=0 這個語法?

kilroy 發表於 11-1-30 01:11

在 AB 裡與 HTS 對照

buy -> buy
short -> sell
cover -> exitshort
sell -> exitlong

再用 marketposition = cum(Buy+Cover-Short-Sell); 去算現在倉位

參考看看吧

希望有幫助嚕 XD

P.S. 語法是由eclife 大提供

QQ731 發表於 11-1-30 01:20

可否舉個簡單例子供對照?
新手有很多語法還霧煞煞...呀

QQ731 發表於 11-1-30 01:38

例如在HTS中
倉位=0時,才進場
IF MARKETPOSITION=0 AND "AAA" THEN BUY END IF
但在AB該如何寫出這一句呢

CUM這函數沒用過說.....慘

kilroy 發表於 11-1-30 01:46

例如在HTS中
倉位=0時,才進場
IF MARKETPOSITION=0 AND "AAA" THEN BUY END IF
但在AB該如何寫出這一句呢
...
QQ731 發表於 11-1-30 01:38 AM http://coco-in.net/images/common/back.gif


   小弟建議可以試試看嚕
   用 printf("%g",marketposition);

   開啓 amiBroker -> view -> interpretation 看看這數值變化

   就可以知道了 XD


   說真的,倉位判斷和時間判斷這個部份,HTS 簡單多了

   {:4_176:}

QQ731 發表於 11-1-30 17:32

這一句放進去,語法檢查不通過????
marketposition = Cum(Buy+Cover-Short-Sell);

QQ731 發表於 11-1-30 17:41

我的原意是,
因為在hts中有時候是有倉位的時候進場
例如,我要倉位<0的時候,要做反向單進場,
還有的時候,要在倉位=0的時候,才要進場,
還有的時候,要在倉位>0的時候,反向單進場
但是,ab好像都不能這樣設定,只能假設不管現在有沒有倉位,一律進場
這樣就無法得知真實的績效了

所以,能否有簡單的範例,讓我可以對照以上的寫法
試過了一些方法,好像都不行
頭快破了
因為我只會一些簡單的語法
謝謝kilroy提供的方法
可是檢查出現錯誤
我也不知道怎麼修改說

kilroy 發表於 11-1-30 20:18

我的原意是,
因為在hts中有時候是有倉位的時候進場
例如,我要倉位0的時候,反向單進場
但是,ab好像都不能這 ...
QQ731 發表於 11-1-30 05:41 PM http://coco-in.net/images/common/back.gif


   請問錯誤訊息是甚麼,謝謝 XD

QQ731 發表於 11-1-30 22:28

請問錯誤訊息是甚麼,謝謝 XD
kilroy 發表於 11-1-30 08:18 PM http://coco-in.net/images/common/back.gif


    我把marketposition = Cum(Buy+Cover-Short-Sell);放進去接著我的買賣條件
buy=marketposition = 0AND "aaa" and barcomplete;

檢查錯誤為...
Error 29.Variable "buy" used without having been initialized
Error 29.Variable "sell" used without having been initialized
Error 29.Variable "short" used without having been initialized
Error 29.Variable "cover" used without having been initialized

kilroy 發表於 11-1-31 17:48

我把marketposition = Cum(Buy+Cover-Short-Sell);放進去接著我的買賣條件
buy=marketposition = 0...
QQ731 發表於 11-1-30 10:28 PM http://coco-in.net/images/common/back.gif


   AB 要分開寫哩

   照順序寫


   再都還沒進場前,倉位一定會是零 ( cum(buy+cover-short-shell) 會是 0 )

   進場後 cum 才會是 1 或 -1AB 比較麻煩就在這裡哩

   倉位要變 0 時,一定是要先執行 sell 或 cover



         Buy = HTS 的 Buy
       Short = HTS 的 Sell
         Sell = exitlong
      Cover = exitshort


變成要一層一層寫,要多費點心了 {:4_186:}

tina 發表於 11-2-11 21:59

寬大的意思是說
要在每一個buy的條件都加上
marketposition = Cum(Buy+Cover-Short-Sell);
buy1=marketposition = 0AND 進場條件 and barcomplete;
marketposition = Cum(Buy+Cover-Short-Sell);
buy2=marketposition = 0AND 進場條件 and barcomplete;
marketposition = Cum(Buy+Cover-Short-Sell);
buy3=marketposition = 0AND 進場條件 and barcomplete;

如果有5個buy的條件就加上5個marketposition = Cum(Buy+Cover-Short-Sell);
然後sell,cover,short 也都是如法炮製嗎?

kilroy 發表於 11-2-12 21:02

寬大的意思是說
要在每一個buy的條件都加上
marketposition = Cum(Buy+Cover-Short-Sell);
buy1=marketposi ...
tina 發表於 11-2-11 09:59 PM http://coco-in.net/images/common/back.gif

其實買賣不一定是要用 buy cover short sell

而是我們文字檔寫出要給下單機辨識倉位


比如說我也可以設定 tobuy = 買進條件 (達到時進場多單)


那 cum(tobuy...這樣子也可以


---

小弟的意思是說,只要輸出來的結果,是我們要的結果就可以了

可以用 printf 的函數來觀察倉位變話, view -> interpretation可以看到

總之就是層層寫下來,非常麻煩 冏“

tina 發表於 11-2-12 21:35

總之就是層層寫下來,非常麻煩 冏“

就是這一句...層層寫下來看不懂
到底要如何層層寫下來????

到底要如何層層寫下來????

舉個範例說明啦
不然一直問下來好像也沒有結果

以我的範例來說,哪裡有問題?
如何層層寫下來?
請kilroy 大大大直接說明,這樣對新手比較清楚明瞭
不然,還是一直問下去ㄟ
天都亮了
marketposition = Cum(Buy+Cover-Short-Sell);
buy1=marketposition = 0AND 進場條件 and barcomplete;
marketposition = Cum(Buy+Cover-Short-Sell);
buy2=marketposition = 0AND 進場條件 and barcomplete;
marketposition = Cum(Buy+Cover-Short-Sell);
buy3=marketposition = 0AND 進場條件 and barcomplete;

好像只有我看不懂的樣子,天啊

bbdcd 發表於 11-3-26 15:55

好文章

蠻適合激盪思辨能力的

感謝分享

usana642 發表於 11-5-12 17:46

謝謝大大分享......
頁: [1] 2
查看完整版本: 請益HTS轉AB語法