jrtj 发表于 2012-10-18 13:05:10

个人观点,供参考。

jrtj 发表于 2012-10-18 13:07:18

本帖最后由 jrtj 于 2012-10-18 13:08 编辑

是2天均值:
fc:=close;
for i=datacount downto 2 do
ma2 : (fc+fc)/2;

bt11 发表于 2012-10-18 14:57:38

jrtj 发表于 2012-10-18 13:07 static/image/common/back.gif
是2天均值:
fc:=close;
for i=datacount downto 2 do


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

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

jrtj 发表于 2012-10-18 15:46:17

bt11 发表于 2012-10-18 14:57 static/image/common/back.gif
不需要这么麻烦吧,有现成的函数 ma 阿

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


MA(CLOSE,20)
表示求20日均价
一定是最近20K的均值吗?

wxxx 发表于 2012-10-19 08:40:03

MA(CLOSE,20)
对于某根K线来说,就是求此K线前20天收盘均价,也就是此K线最近20天的收盘价均值

wxxx 发表于 2012-10-19 08:55:20

//Table 26.4  周之日指标
Variable: e(0),f(0),j(0);
if C>O then e:=C-O;
if C<O then f:=O-C;
if C>O then j:=1;
if C<O then j:=-1;
if WeekDay=5 and C>C then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if WeekDay=1 and C<C then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if WeekDay=2 and HHV(e,2)<HHV(f,2) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if WeekDay=3 and HHV(e,3)<HHV(f,3) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if WeekDay=4 and HHV(e,4)<HHV(f,4) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if WeekDay=5 and C<C then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if WeekDay=1 and C>C then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if WeekDay=2 and HHV(e,2)>HHV(f,2) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if WeekDay=3 and HHV(e,3)>HHV(f,3) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if WeekDay=4 and HHV(e,4)>HHV(f,4) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;


如果我们想测试,当时间为周一时,可以删除上面的相关语句,改为下面的代码:if WeekDay=1 and C>C then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if WeekDay=1 and C<C then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;
可以看到都是在周二发出交易指令。
其他星期类似。

下回我们讲月之日策略。

wxxx 发表于 2012-10-19 20:26:06

//Table 27.1  永远做空标普
Input:n(21),p(6);
if Day>=p and Day<=(p+3) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if Day>=n  and Day<=(n+3) then BuyToCover('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
{
每月的6号或7号,8号,9号的下一个交易日开空仓
mc里的DayOfMonth(date) 等价于金魔方的Day
}
看下图,2010年10月11号开了空仓,因为10月11号前2根K线时间分别为9月30号,10月8号,所以在10月8号的下一根K线开了空仓。
//Table 27.3  Days of Month Indicator
Input:n(21),p(6);
if Day>=n  and Day<=(n+3) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if Day>=p and Day<=(p+3) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
//Table 27.4  Days of Month—日内交易
Input:n(21),p(6);
if Day>=n  or Day<p then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if Day>=p and Day<n then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;//Table 27.5  出现较低的收盘价后买入,出现较高的收盘价后卖出(日内交易)
Input:n(21),p(6);
if C<C and Day>=n  or Day<p then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if C>C and Day>=p and Day<n then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;下回我们讲年之月策略。

wxxx 发表于 2012-10-19 23:33:17

//Table 28.1  Index Month of the Year Indicator
Input:n(10),p(4);
Variable: e(0),m(0);
m:=Month;
if m<>m and m=n then e:=1;
if m<>m and m=p then e:=-1;
if e=1 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if e=-1 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
{
从11月2日(如果11月2日没开盘,就下一根)开始做多,并一直持有到第二年5月1日;
从5月2日开始做空,一直持有到11月1日。
}
大家可以分析下下面的成交明细,主要是成交日期。

wxxx 发表于 2012-10-20 13:28:29

测试了下新版,支持  Open[-1] 了。
{:4_87:}

wxxx 发表于 2012-10-23 08:46:28

//Table 28.3  年之月 月之日组合
Input:n(10),p(4);
Variable: e(0),f(0),m(0);
m:=Month;
if m<>m and m=n then e:=1;
if m<>m and m=p then e:=-1;
if (Day>=21 or Day<6) then f:=1;
if (Day>=6 and Day<21) then f:=-1;
if e+f=2 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if e+f<2 then Sell('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
if e+f=-2 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if e+f>-2 then BuyToCover('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
{
如果日期在11月1日和4月30日(包含)之间,且在当月21日和下月5日之间,第二天
开盘市价买入。
如果日期在5月1日和10月31日之间,且日期在6日和20日之间,第二天开盘市价做空。
对于多头和空头仓位,如果以上条件改变了,就在第二天市价出场。
}
页: 1 2 3 [4] 5 6 7 8 9 10 11 12
查看完整版本: 战胜金融期货市场(把小的市场优势整合成为强大的赚钱策略)