设为首页收藏本站

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

怎么没人帮忙啊?! [复制链接]

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
11#
发表于 2008-1-29 11:09:40 |只看该作者
哦,你的意思只是获得今天的价格作参考.currentdate>20080128改为date>=20080128就可以了date比currentdate好,date是bar数据,尽量用bar数据作为条件会稳定得多.你的条件是大于今天,那么只有明天可交易了.也可以设置样本数,从某日起.
params
numeric myprice(10500);
numeric mydate(20080128);
vars
numeric i;
begin
for i=1 to 10
{
    if(date>=mydate And high>=myprice+i*60*minmove*pricescale and high<=myprice+(i+1)*60*minmove*pricescale and abs(currentcontracts())<i)
    {
        sellshort(1,0);
    }
}
end
TradeBlazer交流群33647992。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
12#
发表于 2008-1-29 11:16:31 |只看该作者
另外,你的样本设少一点,可能是设的初始金不够用所致.
TradeBlazer交流群33647992。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
314
积分
1160
帖子
247
主题
105
阅读权限
60
注册时间
2007-9-9
最后登录
2008-3-3
13#
发表于 2008-1-29 15:15:39 |只看该作者
资金够的,样本少设了,还是不执行,老大,你试试看啊,然后教我一下看看,是不是哪里设置不对!
欢迎加入交易开拓者QQ群:38529330,让我们一起交流,一起提高,一起赚钱吧。。。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
14#
发表于 2008-1-29 19:30:27 |只看该作者
问题基本弄清,一因为没有平仓指令,那么整个样本内就只当作一次还没有完成的交易(完整的一次交易最少包括一次开,一次平),你在交易设置中的可连续开次数(假如默认为5次),已在回测时被使用完了,所以,要设计一个交易系统,必须起码有一个开仓,一个平仓;第二,程序中没有加入每根BAR限开一次的代码,那么就存在了同一根BAR可能被开仓几次的可能,更尽早使用完了设置的次数.下面我用每日开盘价作参考,每日收盘平仓,交易设置中可连续开的次数设为10次.自己再琢磨修改吧.不要回测讯号是危险的,有回测更易发现问题所在.就此不回复了,今天的电脑速度太慢,编译一次都要20分钟,所以做不成工了.你的思路把它颠倒做还可以,自己看着办吧.
  1. //------------------------------------------------------------------------
  2. // 简称: Addsellposition
  3. // 名称: Addsellposition
  4. // 类别: 交易指令
  5. // 类型: 空头建仓
  6. // 输出:
  7. //------------------------------------------------------------------------
  8. //只用当日的开盘价作参考点吧,收盘平仓。
  9. params
  10. numeric updots(5);
  11. vars
  12. numeric i;
  13. boolseries btoday(false);
  14. boolseries bsellentry(false);
  15. numericseries openprice;
  16. begin
  17.                 if(time>=0.0900 and time<0.1457)
  18.                 {
  19.                                 if(btoday[1]==false)
  20.                                         {
  21.                                                 btoday=true;
  22.                                                 openprice=open;
  23.                                         }Else
  24.                                         {
  25.                                                 btoday=btoday[1];
  26.                                                 openprice=open[1];
  27.                                         }
  28.                         for i=1 to 10
  29.                         {
  30.                                 if(high>=openprice+i*updots*minmove*pricescale and high<=openprice+(i+1)*updots*minmove*pricescale and and bsellentry==false and abs(currentcontracts())<i)
  31.                                         {
  32.                                                 sellshort(1,high);
  33.                                                 commentary("此时已开"+text(i)+"手。");
  34.                                                 bsellentry=true;
  35.                                         }
  36.                         }
  37.                 }
  38. if(time>=0.1457)
  39. {
  40.         if(marketposition==-1)
  41.         {
  42.                 buytocover;
  43.         }
  44. }
  45. end
复制代码
TradeBlazer交流群33647992。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
314
积分
1160
帖子
247
主题
105
阅读权限
60
注册时间
2007-9-9
最后登录
2008-3-3
15#
发表于 2008-1-29 23:21:16 |只看该作者
好耶,3Q呀,明天偶试试
欢迎加入交易开拓者QQ群:38529330,让我们一起交流,一起提高,一起赚钱吧。。。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
16#
发表于 2008-1-30 09:50:06 |只看该作者
openprice=open[1];
改为openprice=openprice[1];
TradeBlazer交流群33647992。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-12 01:15

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部