|
本帖最後由 kilroy 於 13-10-23 18:34 編輯
keymaker 發表於 13-10-23 16:34
本來是要用..王子下單機..無奈似乎已經無法註冊..舊帳號也因為換硬體失效..
最後只好用自己幾年前寫好的程 ...
文字檔的方式就是去抓
e.g.
0 為 空手/平倉
1 為 多
-1 為 空
此為 current position
而下出去的口數為 market position (ex. 2口)
所以當 0 -> 1 時,是下 2口多單出去
1 -> 0 是平倉兩口多單,也就是賣2口平掉
當 1 -> -1 時,是平兩口,空兩口,也就是會送出四口空單(平兩口多單,空兩口)
依此類推
---
currrent position 的數字有跳動時,下單機才會依此去動作
此數值會持續在 last bar 的倉位,比如說一直是多單續抱,持續為 1
下單機持續讀取到的數值還是 1 (這樣只會跟最近一次的訊號有關)
因為當根K持續維持相同倉位方向,除非條件改變 (如符合多單或空單條件時)
current position 的數值才回改變,下單機才會依照數值的改變去做動作
---
在 AB 裡的下單機文字語法範例
Buy = 多單進場條件;
Short = 空單進場條件;
Position = IIf(Buy, 1, IIf(Short, -1, 0));
CurrentPosition = ValueWhen(Position!=0, Position, 1);
IsCPNull = IsNull(CurrentPosition);
PositionSizing = 部位控制模組計算出來要下多少部位:
marketPosition = currentPosition * PositionSizing;
_RD = StrFormat("R:"); //磁碟代號(通常文字檔都會放RAMDisk 去跑)
_SECTION_BEGIN("PlaceOrder");
_NowDate = Now( 1 );
_NowTime = StrRight( "00" + floor( Now( 4 ) / 10000 ), 2 )
+ ":" + StrRight( "00" + floor( Now( 4 ) / 100 ), 2 )
+ ":" + StrRight( "00" + floor( Now( 4 ) % 100 ), 2 );
_ORDER_CMD = _RD+"Order.txt";
if ( ( Now( 4 ) % 2 ) == 0 )
{
_fcsv = fopen(_ORDER_CMD, "w" );
_content = _NowDate + " " + _NowTime + StrFormat( ",%g,%g", LastValue(MarketPosition), C);
if (_fcsv)
{
fputs( _content, _fcsv );
fclose( _fcsv );
}
}
_SECTION_END();
上述範例,輸出的檔案會是 R:\Order.txt
格式為 2013/10/23 16:52:24,1,15336
剩下的就依照個人需求去做修改
參考看看了~~
|
評分
-
查看全部評分
|