關於巴很多次之語法
大家好:小弟想研究巴很多次 (就是頻繁損失)之後的變化
因此 在想說說要如何告訴電腦現在是被狂巴
後來想法是用 PositionProfit<0 andPositionProfit<0andPositionProfit<0
這樣的寫法來告訴電腦目前被巴了3次
但後來再想是否可以 寫一個虛擬下單
比方我程式都不變但當我虛擬單已連巴3次 我在切換成實單
這樣語法寫得出嗎?
請教各位高手
Max
本帖最後由 曾永政 於 14-11-11 13:59 編輯
如果要在同一個圖表裡面完成,可以把 Equity 的資訊用指標拉出來,然後把 i_marketposition 也弄出來,合併處理成一個部位的數值,往外丟給外部下單機。
不然就是用 ADE 或是 GV 去傳到另外一張圖表做下單的動作。
凱衛這個課程就能解決你的需求:http://goo.gl/2WSYUc 感謝政哥!!
小弟再來研究研究!! 曾永政 發表於 14-11-11 13:56 static/image/common/back.gif
如果要在同一個圖表裡面完成,可以把 Equity 的資訊用指標拉出來,然後把 i_marketposition 也弄出來,合併 ...
可以請教一下marketposition與i_marketposition的差異嗎?
Thanks!
其實不用這麼麻煩... 簡單的在一張圖表上就能完成...
就是你自己要用變數管理進出場次數... 然後在你想要真的進出場時就做下單動作...
可以寫指標給人看.. 訊號去下單... 簡單的方法~~ {:4_186:}
都很厲害哇學mc該找誰好ㄋ{:4_130:}{:4_130:} 這種方法跟本不用寫程式, 每天回測, 連虧N次之後, 人工判斷是否開啟程式.{:4_153:} 慢慢看完M大的發表過的文章,每個問題都很有深度也很有想法, 只有這題我有答案 , 是寫的出來的 , 只是我手上的code 是別人給我的 ,不方便轉送 ! 連巴後進場這個想法是會提升獲利的!! 應該不會很難,我有試做過。變數模擬就可以了。
不過我的經驗上是,若你的訊號是手上永遠有單的,連巴之後出手會比較難寫啊 本帖最後由 blj0511 於 15-8-31 14:53 編輯
恩~ 我才剛寫過類似的,不過就是另外用變數自己去計算損益(進場價-出場價的累積總合),當損益金額或次數大於你設定的值時,就開始正式下單,不過有點麻煩就是了
我這隻程式把程式改成獲利當高點滑落達某一價格時就進場操作,獲利過高多少停止操作,這樣的結果總獲利會減少,但獲利曲線變平滑,最大虧損變少,原則上差異不大,只是會比較適合操作
依照經驗,連巴幾次進場,獲利不如從獲利高點滑落多少進場,因為連巴後可能賺幾次小的又再度被連巴
那麼樓上大大請問一下,您說獲利從高點滑落後進場,然後獲利創高多少就停止操作,
那麼你本來的原型策略的權益曲線,本來就是穩定向上的囉,只是你這麼做,曲線較平滑。
我好奇的是,若你本來的策略就穩定往上發展,你怎會有如此的想法呢? 一個功能做得出來在實盤運作,跟要能準確的回測是不同的要求。通常,能在實盤運作會比準確回測簡單得多。
如果只用一張圖表要做到回測的話,在連巴幾次後才出進場訊號,就陷入了邏輯上的誤區:因為必須先有連巴幾次,才能產生買賣訊號,那麼圖表上的第一筆買賣訊號要如何產生?(因為前面沒有連巴),又因為沒有第一筆的買賣訊號,整張圖就沒有任何進場訊號了。
所以才得採用虛擬交易的方式去處理。指標去撈原訊號的績效相關數據,然後計算出目前應該持有的部位方向與數量,直接把這個數值外接出去給第三方下單機,就可以做到實盤上的運作。但,這卻會沒有回測的功能。
想要兼具回測與實盤運作,我想得到的是採用 ADE 套件,讓原訊號圖表的績效輸出到另外一個圖表,用來作 condition 去做一個新的買賣訊號,既然新的圖表有了買賣訊號,回測、實盤交易就都有了。
以下未經測試驗證其正確性...
input: losstimes(3);
var: j(0), equity(0), counting(0), getMP(0), newMP(0);
array: tradeProfit(0);
getMP= i_marketposition;
equity= i_ClosedEquity;
if equity<>equity then begin
_arrayShift(tradeProfit);
tradeProfit= equity-equity;
end;
counting=0;
for j= 1 to losstimes
begin
if tradeProfit<0 then
counting= counting+1;
end;
if counting < losstimes then
newMP=0
else
newMP= getMP ;
{output Position to TXT...begin}
input:driver("F:\"),TXT("fileName");
var:signDTStr("");
DefineDLLFunc: "C:\AutoTrading\omSignTXT64.dll",bool,"GoOrderTxt",LPSTR,int,double,LPSTR;
signDTStr = NumToStr(D,0)+" "+NumToStr(Q_Time,0);
if LastBarOnChart_s then
GoOrderTXT(signDTStr, newMP, C, driver+TXT+".txt");
{output Position to TXT...end} 本帖最後由 blj0511 於 15-9-1 13:23 編輯
arthurch 發表於 15-9-1 05:40 static/image/common/back.gif
那麼樓上大大請問一下,您說獲利從高點滑落後進場,然後獲利創高多少就停止操作,
那麼你本來的原型策略的 ...
當初這想法本來是想用來加碼用的,只是測出來有這樣的效果,但績效差異不大,事實上績效比原本還差
原本績效是向上沒錯,但回檔很大,次數不少,而且會有一段時間績效會整理不前,所以想試試看這樣的加碼方式
但是最大虧損減少,出手次數少1/3~1/4(但不影響原來進出原則)也同時減少滑價風險,平均年獲利比較沒那麼極端,也就是說就人性來說,比較容易操作,尤其是要開始跑一隻程式時,若當時獲利績效在高點,你進場也會很怕吧,但若用此法,進場一定不在獲利高點
黃金期貨原本績效(未加成本)
改成高檔回落進場後績效(未加成本)
PS.2015年績效是因為資料不足,只有2個月資料,所以不準
你提到當「損益金額或次數大於你設定的值時,就開始正式下單,不過有點麻煩就是了」
那?是ec拉回一個定值,再重新出手下單?
還是錯了幾次 再下單呢?
或是同時都有?!
問題較多請見諒
還有我看出手次數頗多,這是當沖程式? 最簡單的測試方式, 就是excel, 把多空對翻的順勢結果輸出到excel, 用excel處理!!以下用CL為範例, 分別是多空對翻每筆進, 巴一二三次後進場, 巴一或二次後進場可以提升每筆獲利, 但不能提升整體獲利!這方法最大問題是, 沒辦法自動下單, 僅僅是研究参考!!
頁:
[1]
2