COCO研究院

 找回密碼
 註冊
搜索
樓主: kilroy

[教學] [分享] 用AB踏入外期程式交易

  [複製鏈接]
發表於 14-3-28 02:53 | 顯示全部樓層
andrewchan 發表於 14-3-27 23:39
Pls accept my apologies for the typo on my last message.

沒問題 朋友 ... :-)

發表於 14-3-28 03:33 | 顯示全部樓層
本帖最後由 joshsmi 於 14-3-28 03:54 編輯

另一個例子

// bar completion

execute = StaticVarGet ( "execute" );
Left =
Status( "lastbartimeleft" ); // Status( "lastbartimeleftrt" )

Title = StrFormat( "%g", Left );

if ( Left == 0 )
{
   
if ( execute )
    {
        
ShellExecute( "notepad.exe", "", "" );
        
SetChartBkColor ( colorYellow );
        
StaticVarSet ( "execute", 0 );
    }
}
else
   
StaticVarSet ( "execute", 1 );

發表於 14-3-28 03:39 | 顯示全部樓層
本帖最後由 joshsmi 於 14-3-28 03:41 編輯

StaticVarSet can also be used as persistent variable since AB 5.72, see development log.

Version( 5.72 );

//AFL: SetOption("StaticVarAutoSave", Interval ) - added to allow periodical auto-saving of persistent static variables

//The Interval is given in seconds.
//for example:

SetOption("StaticVarAutoSave", 60 ); // auto-save persistent variables every 60 seconds (1-minute)

/*
It is important to understand that persistent variables are saved ON EXIT automatically, without any user intervention so it should be enough for most cases. if you for some reason want auto-saves when AmiBroker is running, then you can use this function.

Please note that writing many static variables into physical disk file takes time AND it blocks all static variable access so you should AVOID specifying too small auto-save intervals. Saving every Second is bad idea - it will cause overload. Saving every 60 seconds should be fine.

Calling function with Interval set to zero disables auto-save.
SetOption("StaticVarAutoSave", 0 );
*/


//AFL: new feature: High-performance Persistent Static variables implemented (StaticVarSet has new parameter 'persist' -
//if it is set to True then static variable will be stored in PersistVars.bin file when AmiBroker is closing
//AND reloaded automatically on next startup, preventing the values of static variables between application runs)


if ( ParamTrigger( "Set variable", "Set" ) )
{
   
StaticVarSet( "varx", Close, True ); // set persistent variable via true(1) keyword, deactivate via false(0)
}

Plot( StaticVarGet( "varx" ), "Persistent var", colorRed );

發表於 14-3-28 23:26 來自手機 | 顯示全部樓層
kilroy 發表於 14-3-28 01:58
Hi,

沒辦法下出去是因為

Thanks, 會要研究,不過真的困難.....
發表於 14-3-28 23:27 來自手機 | 顯示全部樓層
joshsmi 發表於 14-3-28 03:39
StaticVarSet can also be used as persistent variable since AB 5.72, see development log.

Version( 5 ...

Thanks, it is very informative.....let me study it....
發表於 14-4-5 12:08 | 顯示全部樓層
K大真是佛心
看來現在換倉是手動換的,對吧?
每個圖表on/off 是怎麼做的?
 樓主| 發表於 14-4-5 15:07 來自手機 | 顯示全部樓層
lwhuang 發表於 14-4-5 12:08
K大真是佛心
看來現在換倉是手動換的,對吧?
每個圖表on/off 是怎麼做的? ...

Hi,

按鈕範例在這個網站
http://www.wisestocktrader.com/indicators/3709-button-control-panel

然後,換倉是手動,原因是技術問題,還有安全考量

參考看看了
發表於 14-4-5 15:51 | 顯示全部樓層
hi, 想請教, 如果我想於實時操作中, 想根據當天open的位置決定進出信號, 那請問用, 應如何寫? 我於backtest中, 為了不受time interval影嚮, 我用了TimeFrameSet(inDaily)去抓當天的open, 之後再用TimeFrameExpand把數據放於一變量中, 那再使用, 沒有問題, 但這方法於實時中, 好像不太可行....因為於實時中, "當天"還沒走完, 是沒有"當天"的day open.......
hi, i would like to know, if my signals are based on the day's open, then how could i define it? I could do it in backtest, with using TimeFrameSet(inDaily) to capture the day's open, then using TimeFrameExpand to store the data, and make used of it without any problem, even in different time interval(say, 1min to 60min....etc). However, I don't think it could work in real time trading, as I believe in RT, the "day" is not yet finished thus it is not able to define it in this way....any idea?

謝謝!!
發表於 14-4-23 17:24 | 顯示全部樓層
Hi Kilroy兄,

我想請教一下, 如果是要如您一樣要跑多種商品, 那是否只開一個analysis的頁, 用一個AFL就可以, 還是應該每一個商品有自己的一個AFL? 因為據我理解, 我要指定合同名稱, 所以我想, 就算多種商品共用同一策略, 我都應該要為每一種商品定一個它自己的AFL, 然後再跑, 對嗎?

謝謝.
 樓主| 發表於 14-4-23 17:56 | 顯示全部樓層
osdak 發表於 14-4-23 17:24
Hi Kilroy兄,

我想請教一下, 如果是要如您一樣要跑多種商品, 那是否只開一個analysis的頁, 用一個AFL就可 ...

Hi,

一個 AFL 跑多個商品,只需開一個 Analysis 就可以了

但是如果是多個 AFL 跑多個商品,這個我就不知道了 XD

---
由於每個商品的規格不同 (如 ticksize, point value 等)
在 AFL 裡用這個語法

if(Name()="string") {... }

如此既可指定測到哪個商品時,他的tick size, point value 為多少

參考看看了~
發表於 14-4-24 23:13 | 顯示全部樓層
kilroy 發表於 14-4-23 17:56
Hi,

一個 AFL 跑多個商品,只需開一個 Analysis 就可以了

Hi 大大,
謝回覆, 那我想請教, 我見大大的教學提到..................
///////////////////////////////////////////////////////////////////////////////////
但小弟後來沒有用他的原因是因為每個商品換倉的時間不同

換倉時需要修改該(IB)商品合約名稱

那如果我按下 pause 後,等於所有商品都是在停止自動下單的狀態了
////////////////////////////////////////////////////////////////////////////////////////

之後又提到......
/////////////////////////////////////////////////////////////////////////////////
接下來要講的就是策略與 IB Controller 下單機的語法了

商品合約的部分,他是 string (字串) 的格式,所以我們是這樣指定
ContractMonth = "ESH4-GLOBEX-FUT";
///////////////////////////////////////////////////////////////////////////////
那我想問, 如果一個AFL跑多商品, 那我相信是要把每種商品的當月合約名稱放於AFL中? 那是否要寫IF句式去分辦?
還有, 如果要改其中一個合同名稱, 我還是要把scan停下來, 所以我才會以為, 大大是每種商品一個AFL呢. 但大大又說可以一個AFL全包所有商品, 改商品時可以不用停下來, 那我就有點疑問了.....請大大不吝賜教 ^_^
 樓主| 發表於 14-4-24 23:31 來自手機 | 顯示全部樓層
osdak 發表於 14-4-24 23:13
Hi 大大,
謝回覆, 那我想請教, 我見大大的教學提到..................
//////////////////////////////// ...

Hi,

Scan 是不停跑同一個AFL,所以如果暫停的話,就不會動作了
(可能同時間,當中有商品有訊號,但因為pause了,這個訊號並不會產生)

所以避免這樣的問題,我才會一個商品開一個圖表

你可以在AFL裡寫 IF(name()=="YM",...); 的語法來判斷現在這個圖表是那個商品

而 IB Controller 對商品合約是以字串(string)格式

如此,可以用 if(name()=="YM","YM   JUN 14",...);

來做合約月份的指定

這樣就可以所有的 chart window 都 apply 同一個 AFL檔


參考看看了
發表於 14-4-25 22:22 來自手機 | 顯示全部樓層
kilroy 發表於 14-4-24 23:31
Hi,

Scan 是不停跑同一個AFL,所以如果暫停的話,就不會動作了

大大,

那用你的例子, "if(name()=="YM","YM   JUN 14",...)", 我要改到七月時,還是要修改AFL,把 JUN 改為 JUL, 那不是一樣要把scan停下來, 改動,再scan嗎?我是否誤會了你的意思呢?

謝謝!!
 樓主| 發表於 14-4-25 23:46 | 顯示全部樓層
osdak 發表於 14-4-25 22:22
大大,

那用你的例子, "if(name()=="YM","YM   JUN 14",...)", 我要改到七月時,還是要修改AFL,把 JUN  ...

是的

改好之後再繼續SCAN


發表於 14-4-27 11:56 來自手機 | 顯示全部樓層
kilroy 發表於 14-4-25 23:46
是的

改好之後再繼續SCAN

那改的過程,其實也是所有商品停下來,可以這樣說嗎?
還有一事想請教,我見大大interval可以調做2小時,我卻發現只有hourly的選擇,請問是如何弄出來的呢?謝謝!
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 24-12-23 11:07

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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