设为首页收藏本站

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

{求助}请帮忙看看我的交易模型哪儿出问题了 [复制链接]

Rank: 1

精华
0
UID
112252
积分
24
帖子
3
主题
1
阅读权限
10
注册时间
2012-8-31
最后登录
2013-6-7
跳转到指定楼层
1#
发表于 2012-9-11 17:41:44 |只看该作者 |倒序浏览
各位论坛的老师或高手,我刚刚接触TB,以前常用文华财经,下面是我在文华财经程序化上常用的一个模型改编的,模型编译没有错误,也能够在超级图标上插入公式应用,就是不显示出信号,不知道哪儿出问题了?
Params
    Numeric VAL1(2);
        Numeric VAL2(5);
        Numeric VAL3(10);
        Numeric VAL4(8);
        Numeric NN(44);
        Numeric lots(1);
Vars
    NumericSeries NN1;
        NumericSeries NN2;
        NumericSeries RSI;
        Numeric MyExitPrice;
       
Begin
   
    NN1=AverageFC(3)-AverageFC(7);
        NN2=AverageFC(5)-AverageFC(10);
        RSI=AverageFC(Max(c-c[1],0),7)/AverageFC(Abs(c-c[1]),7)*100;
        If((MarketPosition==0)&&(((NN1[1]>=VAL1-2&&NN2[1]>=VAL2-2)&&(RSI<=10||RSI>=80))||((NN1[1]>=VAL1&&NN2[1]>=VAL2)&&(RSI>10&&RSI<80))))  //多头开仓条件
        {Buy(lots,Open);
        }
    If((MarketPosition==1)&&(((NN1[1]>=VAL3+2&&NN2[1]>=VAL4+2)&&(RSI<=10||RSI>=80))||((NN1[1]>=VAL3&&NN2[1]>=VAL4)&&(RSI>10&&RSI<80))))//多头平仓条件
        {Sell(lots,C[1]);
        }
        If((MarketPosition==0)&&(((NN1[1]>=VAL3+2&&NN2[1]>=VAL4+2)&&(RSI<=10||RSI>=80))||((NN1[1]>=VAL3&&NN2[1]>=VAL4)&&(RSI>10&&RSI<80))))//空头开仓条件
        {SellShort(lots,Open);
        }
        if(MarketPosition==-1) // 有空仓的情况,空头平仓条件
    {
        If(C[1]>Lowest(C[1],BarsSinceEntry)+NN)    // 止赢条件表达式
        {
            MyExitPrice = Lowest(C[1],BarsSinceEntry)+NN;
            If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
            BuyToCover(lots,MyExitPrice);
        }
    }
   
End

初级大户

酱油

Rank: 5Rank: 5

精华
0
UID
37561
积分
1108
帖子
395
主题
9
阅读权限
60
注册时间
2011-5-4
最后登录
2014-11-3
2#
发表于 2012-9-12 08:43:26 |只看该作者
NN1=AverageFC(3)-AverageFC(7);
        NN2=AverageFC(5)-AverageFC(10);
这是求的什么平均。。。看不懂

使用道具 举报

Rank: 1

精华
0
UID
112252
积分
24
帖子
3
主题
1
阅读权限
10
注册时间
2012-8-31
最后登录
2013-6-7
3#
发表于 2012-9-13 14:17:41 |只看该作者
alex647l 发表于 2012-9-12 08:43
NN1=AverageFC(3)-AverageFC(7);
        NN2=AverageFC(5)-AverageFC(10);
这是求的什么平均。。。看不懂 ...

失误;
NN1=AverageFC(C,3)-AverageFC(C,7);
        NN2=AverageFC(C,5)-AverageFC(C,10);

使用道具 举报

初级大户

酱油

Rank: 5Rank: 5

精华
0
UID
37561
积分
1108
帖子
395
主题
9
阅读权限
60
注册时间
2011-5-4
最后登录
2014-11-3
4#
发表于 2012-9-13 14:40:14 |只看该作者
虽然LZ的逻辑表达复杂了一点,不过我已测试是有信号的,只是非常频繁且杂乱需要改进代码,至于LZ说的没有信号,请看看是否是  公式应用设置  中没有显示公式或者其他的原因

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
38411
积分
669
帖子
160
主题
17
阅读权限
60
注册时间
2011-5-8
最后登录
2023-10-4
5#
发表于 2012-9-15 21:05:55 |只看该作者


Params
    Numeric VAL1(2);
        Numeric VAL2(5);
        Numeric VAL3(10);
        Numeric VAL4(8);
        Numeric NN(44);
        Numeric lots(1);
Vars
    NumericSeries NN1;
        NumericSeries NN2;
        NumericSeries RSI;
        Numeric MyExitPrice;
        
Begin
   
    NN1=AverageFC(c,3)-AverageFC(c,7);
        NN2=AverageFC(c,5)-AverageFC(c,10);
        RSI=AverageFC(Max(c-c[1],0),7)/AverageFC(Abs(c-c[1]),7)*100;
        If((MarketPosition!=1)&&(((NN1[1]>=VAL1-2&&NN2[1]>=VAL2-2)&&(RSI[1]<=10||RSI[1]>=80))||((NN1[1]>=VAL1&&NN2[1]>=VAL2)&&(RSI[1]>10&&RSI[1]<80))))  //多头开仓条件
        {Buy(lots,Open);
        }
   
        If((MarketPosition!=-1)&&(((NN1[1]>=VAL3+2&&NN2[1]>=VAL4+2)&&(RSI[1]<=10||RSI[1]>=80))||((NN1[1]>=VAL3&&NN2[1]>=VAL4)&&(RSI[1]>10&&RSI[1]<80))))//空头开仓条件
        {SellShort(lots,Open);
        }
         if(MarketPosition==-1) // 有空仓的情况,空头平仓条件
    {
        If(L<EntryPrice-NN)    // 止赢条件表达式
        {
            MyExitPrice = EntryPrice-NN;
            If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
            BuyToCover(lots,MyExitPrice);
        }
    }
if(MarketPosition==1) // 有多仓的情况
    {
        If(H>EntryPrice+NN)    // 止赢条件表达式
        {
            MyExitPrice = EntryPrice+NN;
            If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
            sell(lots,MyExitPrice);
        }
    }  
       
    If((Date[-1]!=InvalidInteger && Date!=Date[-1])||(Date[-1]==InvalidInteger && Date < CurrentDate))
    {
        Sell(0,Close);
        BuyToCover(0,Close);
    }Else If(Date==CurrentDate && Time==0.1455 && CurrentTime>=0.1459)
    {
        Sell(0,Close);
        BuyToCover(0,Close);
    }

End


止赢就是在进入价赢利NN点就平仓,如果是移动,要另外写,帮助里有
//------------------------------------------------------------------------

使用道具 举报

Rank: 2

精华
0
UID
112675
积分
59
帖子
36
主题
2
阅读权限
30
注册时间
2012-9-25
最后登录
2012-10-26
6#
发表于 2012-10-9 23:53:09 |只看该作者

使用道具 举报

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

bottom

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

GMT+8, 2024-5-24 00:35

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部