maxhamax 發表於 14-11-11 13:26

關於巴很多次之語法

大家好:

小弟想研究巴很多次 (就是頻繁損失)之後的變化

因此 在想說說要如何告訴電腦現在是被狂巴

後來想法是用    PositionProfit<0 andPositionProfit<0andPositionProfit<0

這樣的寫法來告訴電腦目前被巴了3次

但後來再想是否可以 寫一個虛擬下單

比方我程式都不變但當我虛擬單已連巴3次   我在切換成實單

這樣語法寫得出嗎?

請教各位高手

Max

曾永政 發表於 14-11-11 13:56

本帖最後由 曾永政 於 14-11-11 13:59 編輯

如果要在同一個圖表裡面完成,可以把 Equity 的資訊用指標拉出來,然後把 i_marketposition 也弄出來,合併處理成一個部位的數值,往外丟給外部下單機。

不然就是用 ADE 或是 GV 去傳到另外一張圖表做下單的動作。

凱衛這個課程就能解決你的需求:http://goo.gl/2WSYUc

maxhamax 發表於 14-11-11 14:32

感謝政哥!!

小弟再來研究研究!!

sagito 發表於 14-11-13 08:37

曾永政 發表於 14-11-11 13:56 static/image/common/back.gif
如果要在同一個圖表裡面完成,可以把 Equity 的資訊用指標拉出來,然後把 i_marketposition 也弄出來,合併 ...

可以請教一下marketposition與i_marketposition的差異嗎?
Thanks!

mewmi 發表於 14-11-13 09:38

其實不用這麼麻煩... 簡單的在一張圖表上就能完成...
就是你自己要用變數管理進出場次數... 然後在你想要真的進出場時就做下單動作...
可以寫指標給人看.. 訊號去下單... 簡單的方法~~ {:4_186:}

berg 發表於 14-11-14 00:12

都很厲害哇學mc該找誰好ㄋ{:4_130:}{:4_130:}

ys_chang 發表於 14-11-14 23:23

這種方法跟本不用寫程式, 每天回測, 連虧N次之後, 人工判斷是否開啟程式.{:4_153:}

Jason.chan 發表於 15-8-30 00:05

慢慢看完M大的發表過的文章,每個問題都很有深度也很有想法, 只有這題我有答案 , 是寫的出來的 , 只是我手上的code 是別人給我的 ,不方便轉送 ! 連巴後進場這個想法是會提升獲利的!!

arthurch 發表於 15-8-31 09:41

應該不會很難,我有試做過。變數模擬就可以了。

不過我的經驗上是,若你的訊號是手上永遠有單的,連巴之後出手會比較難寫啊

blj0511 發表於 15-8-31 14:50

本帖最後由 blj0511 於 15-8-31 14:53 編輯

恩~ 我才剛寫過類似的,不過就是另外用變數自己去計算損益(進場價-出場價的累積總合),當損益金額或次數大於你設定的值時,就開始正式下單,不過有點麻煩就是了

我這隻程式把程式改成獲利當高點滑落達某一價格時就進場操作,獲利過高多少停止操作,這樣的結果總獲利會減少,但獲利曲線變平滑,最大虧損變少,原則上差異不大,只是會比較適合操作
依照經驗,連巴幾次進場,獲利不如從獲利高點滑落多少進場,因為連巴後可能賺幾次小的又再度被連巴

arthurch 發表於 15-9-1 05:40

那麼樓上大大請問一下,您說獲利從高點滑落後進場,然後獲利創高多少就停止操作,
那麼你本來的原型策略的權益曲線,本來就是穩定向上的囉,只是你這麼做,曲線較平滑。

我好奇的是,若你本來的策略就穩定往上發展,你怎會有如此的想法呢?

曾永政 發表於 15-9-1 08:45

一個功能做得出來在實盤運作,跟要能準確的回測是不同的要求。通常,能在實盤運作會比準確回測簡單得多。

如果只用一張圖表要做到回測的話,在連巴幾次後才出進場訊號,就陷入了邏輯上的誤區:因為必須先有連巴幾次,才能產生買賣訊號,那麼圖表上的第一筆買賣訊號要如何產生?(因為前面沒有連巴),又因為沒有第一筆的買賣訊號,整張圖就沒有任何進場訊號了。

所以才得採用虛擬交易的方式去處理。指標去撈原訊號的績效相關數據,然後計算出目前應該持有的部位方向與數量,直接把這個數值外接出去給第三方下單機,就可以做到實盤上的運作。但,這卻會沒有回測的功能。

想要兼具回測與實盤運作,我想得到的是採用 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:11

本帖最後由 blj0511 於 15-9-1 13:23 編輯

arthurch 發表於 15-9-1 05:40 static/image/common/back.gif
那麼樓上大大請問一下,您說獲利從高點滑落後進場,然後獲利創高多少就停止操作,
那麼你本來的原型策略的 ...
當初這想法本來是想用來加碼用的,只是測出來有這樣的效果,但績效差異不大,事實上績效比原本還差

原本績效是向上沒錯,但回檔很大,次數不少,而且會有一段時間績效會整理不前,所以想試試看這樣的加碼方式


但是最大虧損減少,出手次數少1/3~1/4(但不影響原來進出原則)也同時減少滑價風險,平均年獲利比較沒那麼極端,也就是說就人性來說,比較容易操作,尤其是要開始跑一隻程式時,若當時獲利績效在高點,你進場也會很怕吧,但若用此法,進場一定不在獲利高點

黃金期貨原本績效(未加成本)


改成高檔回落進場後績效(未加成本)



PS.2015年績效是因為資料不足,只有2個月資料,所以不準



arthurch 發表於 15-9-2 08:37

你提到當「損益金額或次數大於你設定的值時,就開始正式下單,不過有點麻煩就是了」

那?是ec拉回一個定值,再重新出手下單?
還是錯了幾次 再下單呢?

或是同時都有?!
問題較多請見諒

還有我看出手次數頗多,這是當沖程式?

Jason.chan 發表於 15-9-2 10:56

最簡單的測試方式, 就是excel, 把多空對翻的順勢結果輸出到excel, 用excel處理!!以下用CL為範例, 分別是多空對翻每筆進, 巴一二三次後進場, 巴一或二次後進場可以提升每筆獲利, 但不能提升整體獲利!這方法最大問題是, 沒辦法自動下單, 僅僅是研究参考!!

頁: [1] 2
查看完整版本: 關於巴很多次之語法