欢迎您光临博庭社区!

 找回密码
 立即注册
楼主: wxxx

战胜金融期货市场(把小的市场优势整合成为强大的赚钱策略)   [复制链接]

Rank: 6Rank: 6

激情奖

发表于 2012-10-18 13:05:10 |显示全部楼层
个人观点,供参考。
追求的基调是快乐投资

使用道具 举报

Rank: 6Rank: 6

激情奖

发表于 2012-10-18 13:07:18 |显示全部楼层
本帖最后由 jrtj 于 2012-10-18 13:08 编辑

是2天均值:
fc:=close;
for i=datacount downto 2 do

ma2 : (fc[i-1]+fc)/2;

追求的基调是快乐投资

使用道具 举报

Rank: 8Rank: 8

发表于 2012-10-18 14:57:38 |显示全部楼层
jrtj 发表于 2012-10-18 13:07
是2天均值:
fc:=close;
for i=datacount downto 2 do

不需要这么麻烦吧,有现成的函数 ma 阿

MA(X,N),求X的N周期简单移动平均值。
算法:
(X1+X2+X3+...+Xn)/N
例如:
MA(CLOSE,20)
表示求20日均价

使用道具 举报

Rank: 6Rank: 6

激情奖

发表于 2012-10-18 15:46:17 |显示全部楼层
bt11 发表于 2012-10-18 14:57
不需要这么麻烦吧,有现成的函数 ma 阿

MA(X,N),求X的N周期简单移动平均值。

MA(CLOSE,20)
表示求20日均价
一定是最近20K的均值吗?
追求的基调是快乐投资

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-19 08:40:03 |显示全部楼层
MA(CLOSE,20)
对于某根K线来说,就是求此K线前20天收盘均价,也就是此K线最近20天的收盘价均值

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-19 08:55:20 |显示全部楼层
  1. //Table 26.4  周之日指标
  2. Variable: e(0),f(0),j(0);
  3. if C>O then e:=C-O;
  4. if C<O then f:=O-C;
  5. if C>O then j:=1;
  6. if C<O then j:=-1;
  7. if WeekDay=5 and C>C[1] then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  8. if WeekDay=1 and C<C[1] then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  9. if WeekDay=2 and HHV(e,2)<HHV(f,2) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  10. if WeekDay=3 and HHV(e,3)<HHV(f,3) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  11. if WeekDay=4 and HHV(e,4)<HHV(f,4) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  12. if WeekDay=5 and C<C[1] then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  13. if WeekDay=1 and C>C[1] then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  14. if WeekDay=2 and HHV(e,2)>HHV(f,2) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  15. if WeekDay=3 and HHV(e,3)>HHV(f,3) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  16. if WeekDay=4 and HHV(e,4)>HHV(f,4) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  17. SetExitOnClose;
复制代码


如果我们想测试,当时间为周一时,可以删除上面的相关语句,改为下面的代码:
  1. if WeekDay=1 and C>C[1] then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  2. if WeekDay=1 and C<C[1] then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  3. SetExitOnClose;
复制代码

可以看到都是在周二发出交易指令。
其他星期类似。

下回我们讲月之日策略。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-19 20:26:06 |显示全部楼层
  1. //Table 27.1  永远做空标普
  2. Input:n(21),p(6);
  3. if Day>=p and Day<=(p+3) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  4. if Day>=n  and Day<=(n+3) then BuyToCover('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
  5. {
  6. 每月的6号或7号,8号,9号的下一个交易日开空仓
  7. mc里的DayOfMonth(date) 等价于金魔方的Day
  8. }
复制代码

看下图,2010年10月11号开了空仓,因为10月11号前2根K线时间分别为9月30号,10月8号,所以在10月8号的下一根K线开了空仓。
  1. //Table 27.3  Days of Month Indicator
  2. Input:n(21),p(6);
  3. if Day>=n  and Day<=(n+3) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  4. if Day>=p and Day<=(p+3) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
复制代码
  1. //Table 27.4  Days of Month—日内交易
  2. Input:n(21),p(6);
  3. if Day>=n  or Day<p then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  4. if Day>=p and Day<n then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  5. SetExitOnClose;
复制代码
  1. //Table 27.5  出现较低的收盘价后买入,出现较高的收盘价后卖出(日内交易)
  2. Input:n(21),p(6);
  3. if C<C[1] and Day>=n  or Day<p then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  4. if C>C[1] and Day>=p and Day<n then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  5. SetExitOnClose;
复制代码
下回我们讲年之月策略。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-19 23:33:17 |显示全部楼层
  1. //Table 28.1  Index Month of the Year Indicator
  2. Input:n(10),p(4);
  3. Variable: e(0),m(0);
  4. m:=Month;
  5. if m<>m[1] and m[1]=n then e:=1;
  6. if m<>m[1] and m[1]=p then e:=-1;
  7. if e=1 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  8. if e=-1 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  9. {
  10. 从11月2日(如果11月2日没开盘,就下一根)开始做多,并一直持有到第二年5月1日;
  11. 从5月2日开始做空,一直持有到11月1日。
  12. }
复制代码

大家可以分析下下面的成交明细,主要是成交日期。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-20 13:28:29 |显示全部楼层
测试了下新版,支持  Open[-1] 了。

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-23 08:46:28 |显示全部楼层
  1. //Table 28.3  年之月 月之日组合
  2. Input:n(10),p(4);
  3. Variable: e(0),f(0),m(0);
  4. m:=Month;
  5. if m<>m[1] and m[1]=n then e:=1;
  6. if m<>m[1] and m[1]=p then e:=-1;
  7. if (Day>=21 or Day<6) then f:=1;
  8. if (Day>=6 and Day<21) then f:=-1;
  9. if e+f=2 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  10. if e+f<2 then Sell('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
  11. if e+f=-2 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  12. if e+f>-2 then BuyToCover('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
  13. {
  14. 如果日期在11月1日和4月30日(包含)之间,且在当月21日和下月5日之间,第二天
  15. 开盘市价买入。
  16. 如果日期在5月1日和10月31日之间,且日期在6日和20日之间,第二天开盘市价做空。
  17. 对于多头和空头仓位,如果以上条件改变了,就在第二天市价出场。
  18. }
复制代码
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

bottom

Archiver|http://www.patiosoft.com

GMT+8, 2017-12-17 02:52 , Processed in 0.069049 second(s), 9 queries .

花生网 Copyrigh©2012

和讯信息科技有限公司 ALL Rights Reserved 版权所有 复制必究

回顶部