zaqimon 發表於 14-3-23 22:53

kilroy 發表於 14-3-23 17:52 static/image/common/back.gif
Hi,

請問分開處理的意思是什麼方式

也許成交量少的電子盤時段需要跟成交量大的白天時段有不同的交易邏輯,或是使用N-tick chart之類的方式來自動壓縮成交量少的時段以避免指標鈍化之類的。我只是隨便想想而已,不清楚一般有在做程式交易的人會不會去區分不同時段用不同邏輯,還是全天都用相同邏輯去判斷而已。

kilroy 發表於 14-3-23 23:07

zaqimon 發表於 14-3-23 22:53 static/image/common/back.gif
也許成交量少的電子盤時段需要跟成交量大的白天時段有不同的交易邏輯,或是使用N-tick chart之類的方式來 ...

Hi,

以小弟的經驗來看

電子盤某些時段或許成交量較低,但不完全都是沒行情的


甚至常常是台灣時間白天進場的單,晚上就看到獲利進來了

---
我的作法是同一套邏輯(因為參數就是OHLC),不管時段

或是什麼消息或數據要公布(錢只能用噴的來形容,只是可能是噴到別人的口袋去了 XD)

所以不用想太多,任何方法丟進去回測

比如說你想要在不同時段用不同邏輯,一測就知

只要是有利可圖,它就是好方法、好邏輯

參考看看了

andrewchan 發表於 14-3-24 00:06

大家好,
本人是Amibroker的初學者, 看到這個帖確是讓我學到不少東西. 我最近建立了一套策略, 但發覺backtest出來的結果跟explore是不同的, 請問我要怎樣做才可讓backtest及explore的結果一樣? 謝謝!

kilroy 發表於 14-3-24 00:15

andrewchan 發表於 14-3-24 00:06 static/image/common/back.gif
大家好,
本人是Amibroker的初學者, 看到這個帖確是讓我學到不少東西. 我最近建立了一套策略, 但發覺backtes ...

Hi,

可否貼個圖來看看~

backtest 的結果不會和 explore 一樣,因為功能不一樣


參考看看了~

andrewchan 發表於 14-3-24 07:54

Hi,

以下是Backtest mode

以下是Explore mode


謝謝各位的指導.



kilroy 發表於 14-3-24 08:45

本帖最後由 kilroy 於 14-3-24 08:46 編輯

andrewchan 發表於 14-3-24 07:54 static/image/common/back.gif
Hi,

以下是Backtest mode

Hi,

小弟覺得是計算還有欄位的問題

方便貼 explore 的語法嗎?

謝謝~

osdak 發表於 14-3-24 10:27

大大,

我今早測試了一會, 發現我開了autoscan後, 再停下來, 只要有data feed又符合條件, AB/IB controller還是會自動下單, 請問是否正常呢? 我考疑是data feed trigger的.........

kilroy 發表於 14-3-24 10:31

osdak 發表於 14-3-24 10:27 static/image/common/back.gif
大大,

我今早測試了一會, 發現我開了autoscan後, 再停下來, 只要有data feed又符合條件, AB/IB controller ...

Hi,

把 modifyorder 那行改成 placeorder

參考看看了~~

osdak 發表於 14-3-24 10:43

hi,謝大大,
還有一個問題, 我的buy/sell/short/cover都已經設定好, 也加了buy=exrem(buy,sell).....等語句, 於回測中也是沒問題, 但奇怪是, 一接上IB controller, 自動實時下單, 他要是就一大堆buy, 要是就一大堆sell, 我paper trade account的錢像流水一樣....{:4_161:}



我下單的部份就是根據大大之前給的再組合你後來教的cleartrigger.....

{
ibc = GetTradingInterface("IB");

BuyTrigger = LastValue(Buy);
SellTrigger = LastValue(Short);
Clear = Sell OR Cover;
ClearTrigger = LastValue(Clear);
Reset = ParamTrigger("Reset All","RESET");
PrevTN = StaticVarGet("TimeNumber"+Name());
TN = LastValue(TimeNum());
NewBar = TN != PrevTN;
StaticVarSet("TimeNumber"+Name(),TN);
BuyOrderID = StaticVarGetText("BuyOrderID"+Name());
SellOrderID = StaticVarGetText("SellOrderID"+Name());
ClearID = StaticVarGet("ClearID"+Name());
BuyPending = ibc.IsOrderPending(BuyOrderID);
SellPending = ibc.IsOrderPending(SellOrderID);
ClearPending = ibc.IsOrderPending(ClearID);

Shares = 1;

if( NewBar )
{
   if( NOT BuyPending ) StaticVarSetText("BuyOrderID"+Name(),"");
   if( NOT SellPending ) StaticVarSetText("SellOrderID"+Name(),"");
   if( NOT ClearPending) StaticVarSetText("ClearID" + Name(),"");
}
if( BuyTrigger AND BuyOrderID == "" )
{
   ibc.CloseAllOpenPositions(ContractMonth);
   BuyOrderID = ibc.PlaceOrder(ContractMonth, "BUY", Shares, "MKT", 0, 0, "DAY", True);
// BuyOrderID= ibc.ModifyOrder( BuyOrderID, ContractMonth, "Buy", Shares, "MKT", 0, 0, "Day", True);

   StaticVarSetText("BuyOrderID"+Name(),BuyOrderID);
}
else if( SellTrigger AND SellOrderID == "" )
{
   ibc.CloseAllOpenPositions(ContractMonth);
   SellOrderID = ibc.PlaceOrder(ContractMonth, "SELL", Shares, "MKT", 0, 0, "DAY", True);
// SellORderID = ibc.ModifyOrder( SellORderID , ContractMonth, "Sell", Shares, "MKT", 0, 0, "Day", True);

   StaticVarSetText("SellOrderID"+Name(),SellOrderID);
}

//sell or cover

else if( ClearTrigger AND ClearID == "")
{
        ibc.CloseAllOpenPositions(ContractMonth);
   StaticVarSetText("ClearID"+Name(), ClearID);
}

//sell or cover


else if( Reset )
{
   StaticVarSetText("BuyOrderID"+Name(),"");
   if( BuyPending ) ibc.CancelOrder( BuyOrderID );
   StaticVarSetText("SellOrderID"+Name(),"");
   if( SellPending ) ibc.CancelOrder( SellOrderID );
// ibc.CloseAllOpenPositions();
}


kilroy 發表於 14-3-24 15:21

osdak 發表於 14-3-24 10:43 static/image/common/back.gif
hi,謝大大,
還有一個問題, 我的buy/sell/short/cover都已經設定好, 也加了buy=exrem(buy,sell).....等語 ...

Hi,

這行  Clear = Sell OR Cover;


是要 Clear = lastvalue(sell or cover);


參考看看了

webxp 發表於 14-3-24 16:44

本帖最後由 webxp 於 14-3-24 16:47 編輯

joshsmi 發表於 14-3-21 21:49 static/image/common/back.gif
What do you wanna tell, pal?

First of all MC has many disadvantages over AB as it is very limited...
那我就重講一次好了MultiChart .NET SE 免費卻提供全功能,是最大的誘因 :)

osdak 發表於 14-3-24 19:14

大大, 經我今天測試, 我發現了以下的現像:
1. 我是用圖表看實時報價, 如果我於 AA 那裡按了auto repeat(AR), 那AA會不停更新, 但只要一有買入/賣出信號, AB就不停下單.
2. 如果我停了AR, 但圖表還是跟IB連著, 那AB還是會自動下單, 但"好像"重復下單的問題就沒有了.
應該是不正常吧?
謝謝!!

kilroy 發表於 14-3-24 19:36

osdak 發表於 14-3-24 19:14 static/image/common/back.gif
大大, 經我今天測試, 我發現了以下的現像:
1. 我是用圖表看實時報價, 如果我於 AA 那裡按了auto repeat(AR) ...

Hi,
已經用 orderID 照理說是不會讓訊號重複出現

因為已經有一組 orderID 佔住了

請參考此網址

---
圖表和SCAN 不能同時並用唷~ 只能擇一使用

如果 SCAN 還有問題,請先用圖表觀察下單(AFL語法)是否為正常下單狀況

還有就是,若你的 trading rules 是類似 cross(Close,X), cross(X,Close)

or Close>X, Close<X 之類的,必須使用 barcomplete 語法來限制當根K走完後才進場


參考看看了~

osdak 發表於 14-3-24 19:58

"必須使用 barcomplete 語法來限制當根K走完後才進場"
原來是這樣! 我今天測試時, 都發現了好像和大大之前說的不一樣, 他於K中間就開始下單, 但不敢肯定, 因此打算再測試再問, 看來問題是這裡......
謝謝, 我再研究.......

kilroy 發表於 14-3-24 20:25

osdak 發表於 14-3-24 19:58 static/image/common/back.gif
"必須使用 barcomplete 語法來限制當根K走完後才進場"
原來是這樣! 我今天測試時, 都發現了好像和大大之前 ...

Hi,

小弟這帖就有提到過囉

這邊在詳細說明一下

---
在即時接收資料的情況下 Open, High, Low 這三個值會是固定在那裏的

除非再創新高或破新低,而走出這三個值(Open, High, Low)的值就是 Close了

在一根 K bar 的週期裡,Close是跳動的,直到這個週期走完

---
如此, Close 在還沒走完的情況下,它可能上一秒符合你的進場條件,下一秒卻不符合了

這會是常見的回測 bug,因為回測的資料是 "既知/已知" Close 在哪裡了

所以必須當根K走完才可以進場,否則訊號會跳動

---
另外一種進場的方式就是上述提到的三個值 (open, high, low)

ex. open > 某條件 進場多單, high > 某條件進場多單, low < 某條件進場空單... etc...

但 high>某條件 與 low<某條件 這裡也要小心,因為當根 K bar 可能同時 H>某條件與 L< 某條件

這也是常見的 Bug但都是撰寫語法的人所犯的錯誤



參考看看了~~

頁: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14
查看完整版本: [分享] 用AB踏入外期程式交易