『最佳拍檔』智能決策系統

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12376|回复: 14

BP-AUTO(x) 範例: 平均線升/跌穿平均線 編寫範例

[复制链接]
发表于 2008-10-13 19:25:09 | 显示全部楼层 |阅读模式
移動平均 維基百科,自由的百科全書
http://zh.wikipedia.org/zh-hk/%E7%A7%BB%E5%8B%95%E5%B9%B3%E5%9D%87
 

 

BP-AUTO9GAIN9_MMA.rar (196.96 KB, 下载次数: 2121)

20120909:
有朋友想要 MA 止賺用指標, 而我地本身己經有條MA 開倉用指標, 
所以只要將該指標訊號調轉便成立 !
我己做了一個例子,  "驚狗" BP-GAIN9 可用!
有須要朋友自己用吧~

 

BP-AUTO2 程式編寫例子:


{ x天移動平均線, 升/跌穿 x天移動平均線, 使用 "外掛" 自動買賣}
{可以調較天數的寫法}


nMa1:=input("Plese enter MA1  days:",1,1000,10);
nMa2:=input("Plese enter MA2  days:",1,1000, 20);
buy:= (    Cross(Mov(C,nMa1,S),Mov(C,nMa2,S))   );
sell:=  (   Cross(Mov(C,nMa2,S),Mov(C,nMa1,S))   );
{}
RetVal:=If(buy=1,0.3, If(Sell=1,0.03,0.00));
Retval

 

預設是使用 10 天穿 20 天線

 

 

註: 自動買賣有其一定的市場及系統風險, 建議沒有市場經驗者切勿使用 !!
      以上提供亦只是作為編寫程式時, 參考之用 !!

可更改的BP-AUTO2_10天穿20天移動平均線.gif

 

 

 20111031 再加上進階寫法例子:

 

1) 可選 MA線穿MA線, 或 收市價穿 MA線 做訊號
2) 可以調較天數的寫法
3) 可以調較計算用SMA , EMA 或 WMA 方法
4) 可以選用訊號確認後做, 還是立即做
5) 可以選用單方向做, 只買  或 只沽

註意: 如以收市價穿 MA線 做訊號, Close Price 是以穿 MA2 線的!!


nMth:=Input("MA1 vs MA2=1, Close Price vs MA2=2",1,2,1);

nMa1:=input("Plese enter MA1 days:",1,1000,9);
nMa2:=input("Plese enter MA2 days:",1,1000,21);
nSEMA:=Input("SMA=0,EMA=1,WMA=2",0,2,0);
nConf:=Input("After confirmed-[On=1,Off=0]:",0,1,1);
nDirect:=Input("Up&Dn=0, Up=1, Dn=2:",0,2,0);
{}
nMth2:=if(nMth=1,nMa1,Close);
nbuy:= if(nMth=1,  If(nSEMA=0, Cross( Mov(C,nMa1,S), Mov(C,nMa2,S) ), If(nSEMA=1,  Cross( Mov(C,nMa1,E), Mov(C,nMa2,E) ), Cross( Mov(C,nMa1,W), Mov(C,nMa2,W) ))),
 If(nSEMA=0, Cross( Close, Mov(C,nMa2,S) ), If(nSEMA=1,  Cross( Close, Mov(C,nMa2,E) ), Cross( close, Mov(C,nMa2,W) )))
);
nsell:= if(nMth=1,   If(nSEMA=0, Cross( Mov(C,nMa2,S), Mov(C,nMa1,S) ), If(nSEMA=1, Cross( Mov(C,nMa2,E), Mov(C,nMa1,E) ), Cross( Mov(C,nMa2,W), Mov(C,nMa1,W) ))) ,
If(nSEMA=0, Cross( Mov(C,nMa2,S), Close ), If(nSEMA=1, Cross( Mov(C,nMa2,E), Close ), Cross( Mov(C,nMa2,W), Close )))
);     
{}
{}
BuyMethod:= If(nConf=0,  nBuy , Ref( nBuy  ,-1) AND C >=Ref(L,-1) );
SellMethod:= If(nConf=0,  nSell, Ref( nSell ,-1) AND C <= Ref(H,-1) );
{}
buy:= If( nDirect=0 OR nDirect=1  , BuyMethod,0);
sell:= If( nDirect=0 OR nDirect=2  ,  SellMethod,0);
{}
RetVal:=If(buy=1,0.3, If(Sell=1,0.03,0.00));
Retval;

 

BP-AUTO9 MMA C Points.rar (67.29 KB, 下载次数: 2035)

文件檔 MAMA_BP-AUTO9_20111031_可選Close或MA版.txt (1.6 KB, 下载次数: 2199)

 

文件檔 MAMA_BP-AUTO9_20111104 Close穿線幾多點數版.txt (2.7 KB, 下载次数: 2112)

 

文件檔 MAMA_BP-AUTO9_20111104 MA1 穿 MA2 線幾多點數版.txt (2.8 KB, 下载次数: 2224)

 

 

 20111104 加入另外兩個不同版本, 請自行選擇使用。

 

 

MAMA_AUTO9.gif

 

留意如於外掛上運用時, 指標名稱必須要改為BP-AUTO(2-9) 其中一個 !!
註: 自動買賣有其一定的市場及系統風險, 建議沒有市場經驗者切勿使用 !!
      以上提供亦只是作為編寫程式時, 參考之用 !!

      留意一定要使用止損盤, MA 自動買賣缺點係買賣訊號出現後消失, 彈弓手情況!!

 

CROSS 有個問題存在:
如果咁啱係燭與燭之間CROSS,
而對於前面支燭或後面之燭,
都是無CROSS 發生, 所以會無訊號 !

 

MA_問題.gif

发表于 2008-10-15 17:26:01 | 显示全部楼层

Matthew,


請問此程式中之 Moving average 是否 simple moving average?


如想用 Exponential moving average 應怎樣寫?


Thanks

 楼主| 发表于 2008-10-15 22:02:52 | 显示全部楼层

 無錯 ! 係   simple moving average


 


其它的選項可以用:



Valid methods are 
EXPONENTIAL, SIMPLE, TIMESERIES, TRIANGULAR, WEIGHTED, VARIABLE, AND VOLUMEADJUSTED 
(these can be abbreviated as E, S, T, TRI, W, VAR, and VOL).


 

MovingAverage.gif
发表于 2008-10-16 12:38:13 | 显示全部楼层

Thanks Matthew,


請問是否改成便可?


buy:= (    Cross(EMov(C,nMa1,S),EMov(C,nMa2,S))   );
sell:=  (   Cross(EMov(C,nMa2,S),EMov(C,nMa1,S))   );

 楼主| 发表于 2008-10-16 13:19:35 | 显示全部楼层

 


應該係:


buy:= (    Cross(Mov(C,nMa1,E),Mov(C,nMa2,E))   );
sell:=  (   Cross(Mov(C,nMa2,E),Mov(C,nMa1,E))   );

发表于 2008-10-16 13:34:14 | 显示全部楼层
Thank you
 楼主| 发表于 2010-3-2 00:25:16 | 显示全部楼层
有朋友問 BP 外掛做指標買賣時,  使用不停反手, 而不須要止損的設定為何 ?

限定時間平倉又如何 ?

可以跟以下圖片做:


指標做反手不放止損限時平倉設定.gif
发表于 2011-3-8 00:45:44 | 显示全部楼层
請問怎樣save 入auto 2 呢?
 楼主| 发表于 2011-3-8 16:53:49 | 显示全部楼层
发表于 2011-3-9 00:09:04 | 显示全部楼层
thankyou...matthew
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|『最佳拍檔』智能決策系統

GMT+8, 2024-4-20 08:56 , Processed in 0.145066 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表