设为首页收藏本站

 找回密码
 注册
楼主: jvya
打印 上一主题 下一主题

大侠出手 [复制链接]

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
1#
发表于 2007-12-27 16:54:25 |显示全部楼层
不用采用A函数,应该直接用交易函数就可以了,每次平仓都用全局变量记录一次,每次开仓都用此全局变量作判断,若小于某次即允许开仓。收盘前清零全局变量。A函数仅仅跟随回测帐户产生动作就可以了。
TradeBlazer交流群33647992。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
2#
发表于 2007-12-27 22:28:58 |显示全部楼层
  1. vars
  2. numeric tradetimes;
  3. begin
  4. if(con1 and getglobalvar(0)<8)
  5. {
  6.    buy;
  7.   tradetimes=getglobalvar(0)+1;
  8.   setglobalvar(0,tradetimes);
  9. }
  10. if(con2 and getglobalvar(0)<8)
  11. {
  12.   sellshort;
  13.   tradetimes=getglobalvar(0)+1;
  14.   setglobalvar(0,tradetimes);
  15. }
  16. if(time>0.1455)
  17. {
  18.      if(marketposition==1)
  19.       {
  20.          sell;
  21.       }
  22.      if(marketposition==-1)
  23.      {
  24.          buytocover;
  25.       }
  26.    setglobalvar(0,0);
  27. }
  28. end
复制代码
TradeBlazer交流群33647992。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
3#
发表于 2007-12-27 22:45:46 |显示全部楼层
上述代码只是一个思路,其实要控制交易次数就是要控制连续亏损的次数,把全局变量放在止损平仓指令之后更好,可以分为三个全局变量去完成,一个负责连续做多亏损,一个负责连续做空亏损,一个负责总连续亏损更好解决问题.
TradeBlazer交流群33647992。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
4#
发表于 2007-12-27 22:47:44 |显示全部楼层
第一次运行时,全局变量就是0呀,因为每天的收盘前已经清零了.
TradeBlazer交流群33647992。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
5#
发表于 2007-12-27 22:53:41 |显示全部楼层
if(con1 and getglobalvar(0)<8)
其实就是当第七次以内可以通过,达到第七次还可再通过一次,总共交易次数就变为8次了,如果是<=8,则会交易9次.
TradeBlazer交流群33647992。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
6#
发表于 2007-12-29 08:28:32 |显示全部楼层
params
numcric totalloss(5);
numeric seiresloss(3);
numeric wintimes(3);
vars
numeric totalloss1;
numeric seriesloss1;
numeric wintimes1;
begin
if(con1 and getglobalvar(0)<totalloss and getglobalvar(1)<seriesloss and getglobalvar(2)<wintimes)
{
    开仓指令;
}
if(con2)
{
    止损平多仓;
    seriesloss=getglobalvar(1)+1;
    setglobalvar(1,seriesloss);
    totalloss=getglobalvar(0)+1;
   setglobalvar(0,totalloss);
   setglobalvar(2,0);
}
if(con3)
{
    止损平空仓;
   seriesloss=getglobalvar(1)+1;
    setglobalvar(1,seriesloss);
    totalloss=getglobalvar(0)+1;
   setglobalvar(0,totalloss);
   setglobalvar(2,0);
}
if(con4)
{
   获利平多仓;
  wintimes=getglobalvar(2)+1;
  setglobalvar(2,wintimes);
  setglobalvar(0,0);
  setglobalvar(1,0);
}
if(con5)
{
   获利平空仓;
  wintimes=getglobalvar(2)+1;
  setglobalvar(2,wintimes);
  setglobalvar(0,0);
  setglobalvar(1,0);
}
if(times>0.1455)
{
  平多仓;
  平空仓;
  setglobalvar(0,0);
  setglobalvar(1,0);
  setglobalvar(2,0);
}
TradeBlazer交流群33647992。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
7#
发表于 2007-12-30 12:25:45 |显示全部楼层
这里的代码表达是有问题的,还是应该把numeric seriesloss1;改为buyloss和sellloss,再增加一个全局变量,放在适当位置加一,适当位置清零即可实现连续买入亏损次数、卖出亏损次数、总亏损次数、获利次数的控制。
TradeBlazer交流群33647992。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-20 14:57

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部