设为首页收藏本站

 找回密码
 注册
查看: 7162|回复: 9
打印 上一主题 下一主题

双均线交易系统--请版主帮忙 [复制链接]

Rank: 3Rank: 3

精华
0
UID
2108
积分
245
帖子
39
主题
4
阅读权限
40
注册时间
2008-8-8
最后登录
2016-3-28
跳转到指定楼层
1#
发表于 2008-11-25 22:09:11 |只看该作者 |倒序浏览
根据小期的方法,本人写的双均线交易系统
其思路为:
2条均线以上开多仓
价格回落到2均线中间锁仓
下到2均线以下平多,加空仓

空单方法一样。
代码如下
-----------------------------------------------------------------------
Params
  Numeric MA1(21);
  Numeric MA2(34);
  Numeric lots(10);//仓位

Vars
  Numeric shortMA;
  Numeric longMA;
  Numeric lotbuy(0) ; //多头仓位
  Numeric lotsell(0); //空头仓位
  Numeric LB(0);//取回多头仓位
  Numeric LS(0);//取回空头仓位


Begin
  
  shortMA=AverageFC(close,MA1);
  longMA=AverageFC(close,MA2);
If (MarketPosition==0) //没仓时候的操作
  {
If(Close>shortMA And Close>longMA)
  {
   Buy(lots,close,true);
   Commentary("原来持仓"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
   lotbuy=lots;
   lotsell=0;
   SetGlobalVar(0,lotbuy);//保存开多数量
   SetGlobalVar(1,lotsell);//保存开空数量
   Commentary("后来的仓为"+"多仓为:"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
   Return;
  }
If(close<shortMA And Close<longMA)
  {
   SellShort(lots,close,true);
   Commentary("原来持仓"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
   lotbuy=0;
   lotsell=lots;
   SetGlobalVar(0,lotbuy);//保存开多数量
   SetGlobalVar(1,lotsell);//保存开空数量
   Commentary("后来的仓为"+"多仓为:"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
   Return;
  }
}
Else{
lotbuy=GetGlobalVar(0);
lotsell=GetGlobalVar(1);
If (Close<shortMA And Close>longMA And lotbuy==lots and lotsell==0) //进入21,34之间,拿多的,加同等的空
{
  SellShort(lots,close,True);
  Commentary("原来持仓"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  lotsell=lots;
  SetGlobalVar(1,lotsell);
  Commentary("后来的仓为"+"多仓为:"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  Return;

}
lotbuy=GetGlobalVar(0);
lotsell=GetGlobalVar(1);
If (Close>shortMA And Close<longMA And lotbuy==0 and lotsell==lots)// 进入21,34之间,拿空的,加同等的多
{
  Buy(lots,close,true);
  Commentary("原来持仓"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  lotbuy=lots;
  SetGlobalVar(0,lotbuy);
  Commentary("后来的仓为"+"多仓为:"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  Return;
}

lotbuy=GetGlobalVar(0);
lotsell=GetGlobalVar(1);
If(Close>shortMA And Close>longMA And lotbuy==lots And lotsell==lots)//当锁仓的时候,向上破21、34时,平空加多
{
  Buy(lots,close,true);
  BuyToCover(lots,close,true);
  Commentary("原来持仓"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  lotbuy=2*lots;
  lotsell=0;
  SetGlobalVar(0,lotbuy);
  SetGlobalVar(1,lotsell);
  Commentary("后来的仓为"+"多仓为:"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  Return;
   
}


lotbuy=GetGlobalVar(0);
lotsell=GetGlobalVar(1);
If(Close<shortMA And Close<longMA And lotbuy==lots And lotsell==lots)//当锁仓的时候,向下破21、34时,平多加空
{
  Sell(lots,close,true);
  SellShort(lots,close,true);
  Commentary("原来持仓"+Text(lotbuy)+"    空仓为:"+Text(lotsell));  
  lotbuy=0;
  lotsell=2*lots;
  SetGlobalVar(0,lotbuy);
  SetGlobalVar(1,lotsell);
  Commentary("后来的仓为"+"多仓为:"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  Return;
  
   
}

lotbuy=GetGlobalVar(0);
lotsell=GetGlobalVar(1);
If (Close<shortMA And Close>longMA And lotbuy==2*lots and lotsell==0) //重新回到21,34之间,拿多的,平半多,加同等的空
{
  Sell(lots,close,true);
  SellShort(lots,close,True);
  Commentary("原来持仓"+Text(lotbuy)+"    空仓为:"+Text(lotsell));   
  lotbuy=lots;
  lotsell=lots;
  SetGlobalVar(0,lotbuy);
  SetGlobalVar(1,lotsell);
  Commentary("后来的仓为"+"多仓为:"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  Return;

}
lotbuy=GetGlobalVar(0);
lotsell=GetGlobalVar(1);
If (Close>shortMA And Close<longMA And lotbuy==0 and lotsell==2*lots)// 重新回到21,34之间,拿空的,平半空,加同等的多
{
  BuyToCover(lots,close,true);
  Buy(lots,close,true);
  Commentary("原来持仓"+Text(lotbuy)+"    空仓为:"+Text(lotsell));   
  lotbuy=lots;
  lotsell=lots;
  SetGlobalVar(0,lotbuy);
  SetGlobalVar(1,lotsell);
  Commentary("后来的仓为"+"多仓为:"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  Return;
}

lotbuy=GetGlobalVar(0);
lotsell=GetGlobalVar(1);
If (Close>shortMA And Close>longMA And lotbuy==0 and lotsell==2*lots)// 在21,34之下直接上21、34,拿空的,平2空,加2多
{
  BuyToCover(2*lots,close,true);
  Buy(2*lots,close,true);
  Commentary("原来持仓"+Text(lotbuy)+"    空仓为:"+Text(lotsell));  
  lotbuy=2*lots;
  lotsell=0;
  SetGlobalVar(0,lotbuy);
  SetGlobalVar(1,lotsell);
  Commentary("后来的仓为"+"多仓为:"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  Return;
}

lotbuy=GetGlobalVar(0);
lotsell=GetGlobalVar(1);
If (Close<shortMA And Close<longMA And lotbuy==2*lots and lotsell==0)// 在21,34之上直接下21、34,拿多的,平2多,加2空
{
  Sell(2*lots,close,true);
  SellShort(2*lots,close,true);
  Commentary("原来持仓"+Text(lotbuy)+"    空仓为:"+Text(lotsell));   
  lotbuy=0;
  lotsell=2*lots;
  SetGlobalVar(0,lotbuy);
  SetGlobalVar(1,lotsell);
  Commentary("后来的仓为"+"多仓为:"+Text(lotbuy)+"    空仓为:"+Text(lotsell));
  Return;
}


}
End

---------------------------------------------------------------------------------------------------------------------
但我发现明显不对
因为本人不是程序员出身
请版主帮我看看
问题在哪里
谢谢

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
2#
发表于 2008-11-26 09:53:21 |只看该作者
为什么要锁仓,直接平掉仓位不是更方便?

使用道具 举报

Rank: 4

精华
0
UID
584
积分
501
帖子
63
主题
10
阅读权限
50
注册时间
2007-10-22
最后登录
2019-2-4
3#
发表于 2008-11-26 10:16:39 |只看该作者
锁仓即降低资金使用效率,又增加交易成本,没有任何意义。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2108
积分
245
帖子
39
主题
4
阅读权限
40
注册时间
2008-8-8
最后登录
2016-3-28
4#
发表于 2008-11-26 11:38:40 |只看该作者
原帖由 nopain 于 2008-11-26 09:53 发表
为什么要锁仓,直接平掉仓位不是更方便?


锁仓只是一种思路方法

nopain 大能不能帮忙改一下
程序问题很大
没办法实现我要的功能

谢谢

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
5#
发表于 2008-11-26 13:29:48 |只看该作者
TB不能实现锁仓。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2108
积分
245
帖子
39
主题
4
阅读权限
40
注册时间
2008-8-8
最后登录
2016-3-28
6#
发表于 2008-11-26 17:01:57 |只看该作者
原帖由 nopain 于 2008-11-26 13:29 发表
TB不能实现锁仓。


在持多的时候
开同样多的空
这种理解方式不是锁仓?

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2108
积分
245
帖子
39
主题
4
阅读权限
40
注册时间
2008-8-8
最后登录
2016-3-28
7#
发表于 2008-11-26 17:18:01 |只看该作者
系统的好坏暂且不说
我只想通过程序的功能实现这种方法
在我看来
方法只最重要的
这种锁仓的方法
肉眼观察是极其保守的盈利做法

我愿意和大家交流思想
且愿意全盘托出,大家一起进步

使用道具 举报

Rank: 1

精华
0
UID
2820
积分
22
帖子
3
主题
0
阅读权限
10
注册时间
2008-11-20
最后登录
2019-3-24
8#
发表于 2008-11-26 18:11:12 |只看该作者
对 学习中...

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2108
积分
245
帖子
39
主题
4
阅读权限
40
注册时间
2008-8-8
最后登录
2016-3-28
9#
发表于 2008-11-26 22:36:07 |只看该作者
难道真的没有人帮忙?

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
10#
发表于 2008-11-27 07:56:19 |只看该作者
把锁仓的部分另做一个方向相反的系统就可以了。
TradeBlazer交流群33647992。

使用道具 举报

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

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-5 07:48

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部