COCO研究院

 找回密碼
 註冊
搜索
查看: 6667|回復: 15

[範例程式碼] 請益HTS轉AB語法

[複製鏈接]
發表於 11-1-29 23:41 | 顯示全部樓層 |閱讀模式
請問在HTS中的 IF MARKETPOSITION>0 AND 進場條件xxxx THEN BUY END IF
HTS中可以表達出現在的倉位是=1 OR =-1 OR =0
但是在AB中,如何表達MARKETPOSITION>0 OR =-1 OR=0 這個語法?
發表於 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 大提供
 樓主| 發表於 11-1-30 01:20 | 顯示全部樓層
可否舉個簡單例子供對照?
新手有很多語法還霧煞煞...呀
 樓主| 發表於 11-1-30 01:38 | 顯示全部樓層
例如在HTS中
倉位=0時,才進場
IF MARKETPOSITION=0 AND "AAA" THEN BUY END IF
但在AB該如何寫出這一句呢

CUM這函數沒用過說.....慘
發表於 11-1-30 01:46 | 顯示全部樓層
例如在HTS中
倉位=0時,才進場
IF MARKETPOSITION=0 AND "AAA" THEN BUY END IF
但在AB該如何寫出這一句呢
...
QQ731 發表於 11-1-30 01:38 AM



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

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

   就可以知道了 XD


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

   
 樓主| 發表於 11-1-30 17:32 | 顯示全部樓層
這一句放進去,語法檢查不通過????
marketposition = Cum(Buy+Cover-Short-Sell);
 樓主| 發表於 11-1-30 17:41 | 顯示全部樓層
我的原意是,
因為在hts中有時候是有倉位的時候進場
例如,我要倉位<0的時候,要做反向單進場,
還有的時候,要在倉位=0的時候,才要進場,
還有的時候,要在倉位>0的時候,反向單進場
但是,ab好像都不能這樣設定,只能假設不管現在有沒有倉位,一律進場
這樣就無法得知真實的績效了

所以,能否有簡單的範例,讓我可以對照以上的寫法
試過了一些方法,好像都不行
頭快破了
因為我只會一些簡單的語法
謝謝kilroy提供的方法
可是檢查出現錯誤
我也不知道怎麼修改說
發表於 11-1-30 20:18 | 顯示全部樓層
我的原意是,
因為在hts中有時候是有倉位的時候進場
例如,我要倉位0的時候,反向單進場
但是,ab好像都不能這 ...
QQ731 發表於 11-1-30 05:41 PM



   請問錯誤訊息是甚麼,謝謝 XD
 樓主| 發表於 11-1-30 22:28 | 顯示全部樓層
請問錯誤訊息是甚麼,謝謝 XD
kilroy 發表於 11-1-30 08:18 PM



    我把marketposition = Cum(Buy+Cover-Short-Sell);放進去接著我的買賣條件
buy=marketposition = 0  AND "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
發表於 11-1-31 17:48 | 顯示全部樓層
我把marketposition = Cum(Buy+Cover-Short-Sell);放進去接著我的買賣條件
buy=marketposition = 0  ...
QQ731 發表於 11-1-30 10:28 PM



   AB 要分開寫哩

   照順序寫


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

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

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



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


變成要一層一層寫,要多費點心了
發表於 11-2-11 21:59 | 顯示全部樓層
寬大的意思是說
要在每一個buy的條件都加上
marketposition = Cum(Buy+Cover-Short-Sell);
buy1=marketposition = 0  AND 進場條件 and barcomplete;
marketposition = Cum(Buy+Cover-Short-Sell);
buy2=marketposition = 0  AND 進場條件 and barcomplete;
marketposition = Cum(Buy+Cover-Short-Sell);
buy3=marketposition = 0  AND 進場條件 and barcomplete;

如果有5個buy的條件就加上5個marketposition = Cum(Buy+Cover-Short-Sell);
然後sell,cover,short 也都是如法炮製嗎?
發表於 11-2-12 21:02 | 顯示全部樓層
寬大的意思是說
要在每一個buy的條件都加上
marketposition = Cum(Buy+Cover-Short-Sell);
buy1=marketposi ...
tina 發表於 11-2-11 09:59 PM


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

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


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


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


---

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

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

總之就是層層寫下來,非常麻煩 冏“
發表於 11-2-12 21:35 | 顯示全部樓層
總之就是層層寫下來,非常麻煩 冏“

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

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

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

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

好像只有我看不懂的樣子,天啊
發表於 11-3-26 15:55 | 顯示全部樓層
好文章

蠻適合激盪思辨能力的

感謝分享
發表於 11-5-12 17:46 | 顯示全部樓層
謝謝大大分享......
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-20 11:24

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |