- 精华
- 2
- 在线时间
- 167 小时
- UID
- 99
- 积分
- 662
- 帖子
- 159
- 阅读权限
- 60
- 注册时间
- 2007-8-12
- 最后登录
- 2015-6-9
- 精华
- 2
- UID
- 99
- 积分
- 662
- 帖子
- 159
- 主题
- 42
- 阅读权限
- 60
- 注册时间
- 2007-8-12
- 最后登录
- 2015-6-9
|
发表于 2007-8-27 18:46:41
|显示全部楼层
我自己 写了个交易系统,
汉字表达如下:
ma5同时大于ma13和ma34,开多
ma5一旦小于ma13或ma34,平全部多仓
ma5同时小于ma13和ma34,开空
ma5一旦大于ma13或ma34,平全部空单
加码是开仓以后,价格比开仓价格沿有利的方向发展1%,就加码动态权益的30%
写成公式如下:
- //------------------------------------------------------------------------
- // 简称: zjgl
- // 名称: zjgl
- // 类别: 交易指令
- // 类型: 多头建仓
- // 输出: 多头建仓
- //------------------------------------------------------------------------
- Vars
- Bool bk;
- Bool sk;
- Bool sp;
- Bool bp;
- Numeric kp;
- Numeric zzj; // 总资金拼音缩写,就是动态权益
- Numeric ss; //代表开仓手数,手数的拼音缩写
- Numeric stop; //
- NumericSeries ma10;
- NumericSeries ma5;
- NumericSeries ma13;
- NumericSeries ma34;
-
- Begin
- zzj = CurrentCapital()+ Abs( Close*BigPointValue()*ContractUnit*CurrentContracts()*MarginRatio() ); //总资金拼音缩写,就是动态权益
- ss = (zzj*0.3)/(Close*BigPointValue()*ContractUnit*MarginRatio()); //代表开仓手数,手数的拼音缩写
-
-
- ma10 = Average(close,10);
- ma5 = Average(close,5);
- ma13 = Average(close,13);
- ma34 = Average(close,34);
-
- bk = ma5>ma13 && ma5>ma34;//ma5同时大于ma13和ma34,开多
- sk = ma5<ma13 && ma5<ma34;//ma5一旦小于ma13或ma34,平全部多仓
- sp =ma5<ma13 || ma5<ma34;//ma5同时小于ma13和ma34,开空
- bp = ma5>ma13 || ma5>ma34;//ma5一旦大于ma13或ma34,平全部空单
- if(MarketPosition == 0 && CurrentCapital() / (ContractUnit*Close*MarginRatio())>=ss )
- {
- if(bk)
- {
- Buy(ss,Close);
- kp = close;
- SetGlobalVar(0,kp);//无持仓时满足bk条件开多单,并把开仓时的close设置为全局变量
- }
-
- Else if(sk)
- {
- SellShort(ss,close);
- kp = close;
- SetGlobalVar(0,close);//无持仓时满足sk条件开多单,并把开仓时的close设置为全局变量
- }
- }
-
- if(MarketPosition == 1 )
- {
- kp = GetGlobalVar(0);
-
- if(close>kp*1.01 && CurrentCapital() / (ContractUnit*Close*MarginRatio())>=ss)
- {
- buy(ss,close);
- kp = close;
- SetGlobalVar(0,kp); //持多仓时,如果价格朝有利价格发展1%,就加码,并且把加码时候的收盘价格设置为全局变量
- }
-
- Else if(sp )
- Sell(0,Close); //持多仓时,如果满足sp条件,就平掉所有的多单。
- }
-
-
-
- if(MarketPosition == -1 )
- {
- kp = GetGlobalVar(0);
-
- if(close<kp*0.99 && CurrentCapital() / (ContractUnit*Close*MarginRatio())>=ss)
- {
- SellShort(ss,close);
- kp = close;
- SetGlobalVar(0,kp); //持空仓时,如果价格朝有利价格发展1%,就加码,并且把加码时候的收盘价格设置为全局变量
- }
-
- Else if( bp )
- BuyToCover(0,Close); //持多仓时,如果满足bp条件,就平掉所有的多单。
- }
-
-
-
-
- End
- //------------------------------------------------------------------------
- // 编译版本 GS2004.06.12
- // 用户版本 2007/08/18 22:55
- // 版权所有 ddbq
- // 更改声明 TradeBlazer Software保留对TradeBlazer平台
- // 每一版本的TrabeBlazer公式修改和重写的权利
- //------------------------------------------------------------------------
复制代码
[ 本帖最后由 ddbq 于 2007-9-1 22:25 编辑 ] |
|