COCO研究院

 找回密碼
 註冊
搜索
查看: 16762|回復: 18

[範例程式碼] 請教移動停利寫法?

[複製鏈接]
發表於 13-3-19 13:03 | 顯示全部樓層 |閱讀模式
參考了Ray's blog的移動停利函數寫法概念,由於要不到原程式碼只好自己寫了。
函數:NetTrailling(獲利點數,拉回百分比或點數)
inputs: N(numericsimple),ratio(numericsimple);
NetTrailling=iff(ratio>1 and (highest(high,barssinceentry)-entryprice>N) and marketposition>1,highest(high,barssinceentry)-ratio,0 );
NetTrailling=iff(ratio<1 and (highest(high,barssinceentry)-entryprice>N) and marketposition>1,highest(high,barssinceentry)-ratio*(highest(high,barssinceentry)-entryprice),0 );
NetTrailling=iff(ratio>1 and (entryprice-Lowest(low,barssinceentry)>N) and marketposition<1,Lowest(low,barssinceentry)+ratio,0 );
NetTrailling=iff(ratio<1 and (entryprice-Lowest(low,barssinceentry)>N) and marketposition<1,Lowest(low,barssinceentry)+ratio*(entryprice-Lowest(low,barssinceentry)),0 );
套用到訊號裡面會出現最大K棒根數需大於多少根的錯誤,並強制關掉訊號。
請問是那邊出錯了?謝謝!!
發表於 13-3-19 13:37 | 顯示全部樓層
在圖表設定的地方,有個最大K棒數的設定,預設是50,有去調嗎?
 樓主| 發表於 13-3-19 14:03 | 顯示全部樓層
r98521713 發表於 13-3-19 13:37
在圖表設定的地方,有個最大K棒數的設定,預設是50,有去調嗎?

這個最大K棒數我沒去調,因為我一個是訊號碼去引用這個函數,我只有在指標類的設定看過
設定最大K棒數這選項,我的訊號相關設定看不到怎辦?

發表於 13-3-19 14:18 | 顯示全部樓層

K棒數

K棒數

我指的是這個。

不然就是,barssinceentry的問題
 樓主| 發表於 13-3-19 15:09 | 顯示全部樓層
r98521713 發表於 13-3-19 14:18
我指的是這個。

不然就是,barssinceentry的問題

感恩,剛剛改成250就不會出現錯誤了,只是覺得奇怪我訊號用到的指標都有加currentbar>1,
還會出現這種鳥事,我也猜想應該是barsinceentry搞的鬼。
發表於 13-3-19 15:33 | 顯示全部樓層
要直接用barsinceentry早晚會出包,萬一你調整參數或是哪天又連續250bar沒進出。
不如多放一個變數存進場後的高低點
發表於 13-3-19 16:16 | 顯示全部樓層
天啊!這個keyword,竟然能宣告,您把牠寫成指標放在圖上看看

inputs : price(8000) ;
vars : barssinceentry(0) ;
barssinceentry = price ;
plot1 (barssinceentry) ;
 樓主| 發表於 13-3-19 18:54 | 顯示全部樓層
賭神咖啡客 發表於 13-3-19 16:16
天啊!這個keyword,竟然能宣告,您把牠寫成指標放在圖上看看

inputs : price(8000) ;

就變成一條線,有什麼特別嗎?
 樓主| 發表於 13-3-19 18:59 | 顯示全部樓層
r98521713 發表於 13-3-19 15:33
要直接用barsinceentry早晚會出包,萬一你調整參數或是哪天又連續250bar沒進出。
不如多放一個變數存進場後 ...

請教一下是指要另設一個變數來存新高嗎?比如
var1=highest(high,barssinceentry);
這樣嗎?
發表於 13-3-19 19:10 | 顯示全部樓層
t3tpikachu 發表於 13-3-19 18:59
請教一下是指要另設一個變數來存新高嗎?比如
var1=highest(high,barssinceentry);
這樣嗎?

是設一個變數存高沒錯
但不能用var1=highest(high,barssinceentry)這樣barssinceentry還是存在
你可以設成
if marketposition<>marketposition[1] then begin
 var1=high;
 var2=entryprice;
end else begin
 if high>var1 then var1=high;
end;
類似這樣就不會用到barssinceentry

評分

參與人數 1金錢 +2 收起 理由
t3tpikachu + 2 太強了

查看全部評分

發表於 13-3-19 20:10 | 顯示全部樓層
大家都好強喔!!!
發表於 13-3-19 22:08 | 顯示全部樓層
r98521713 發表於 13-3-19 19:10
是設一個變數存高沒錯
但不能用var1=highest(high,barssinceentry)這樣barssinceentry還是存在
你可以設成 ...

vars : marketposition(0);

marketposition=close;

plot1(marketposition);

嘿嘿....牠變收盤價了


發表於 13-3-19 22:20 | 顯示全部樓層
請看一個例子,加移動停利後....更穩定的賠光光了
日本冠軍操盤法引進台灣後的績效~果然!
 樓主| 發表於 13-3-20 01:03 | 顯示全部樓層
賭神咖啡客 發表於 13-3-19 22:20
請看一個例子,加移動停利後....更穩定的賠光光了
日本冠軍操盤法引進台灣後的績效~果然! ...

我移動停利是打算拿來用在外匯保證金上,台指期的話個人感覺
巴來巴去,逆勢為主順勢為輔可能會活得稍微久一點。

評分

參與人數 1金錢 +2 收起 理由
賭神咖啡客 + 2 國外盤適合順勢

查看全部評分

 樓主| 發表於 13-3-20 08:42 | 顯示全部樓層
剛剛看一下書,barsinceentry是訊號類指令,看來有點囧了!!
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 24-12-22 20:11

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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