请帮忙看看我的开拓者交易模型哪儿出问题了 [开拓者 TB]
- 咨询内容: 各位论坛的老师或高手,我刚刚接触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
- TB技术人员: NN1=AverageFC(3)-AverageFC(7);
NN2=AverageFC(5)-AverageFC(10);
这是求的什么平均。。。看不懂 - TB客服:
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); - 网友回复: 虽然LZ的逻辑表达复杂了一点,不过我已测试是有信号的,只是非常频繁且杂乱需要改进代码,至于LZ说的没有信号,请看看是否是 公式应用设置 中没有显示公式或者其他的原因
- 网友回复:
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点就平仓,如果是移动,要另外写,帮助里有
//------------------------------------------------------------------------
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 262069696 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容

会员登录/注册