来人啊,救命啊,帮我看看这些代码实盘用行不行! [开拓者 TB]
- 咨询内容:
本帖最后由 空空大师 于 2012-3-2 08:56 编辑
Vars
Numeric JC;
Numeric GDPJ;
Numeric KJZ;
Numeric RC;
Numeric RC1;
Numeric RC2;
Numeric MinPoint; // 一个最小变动单位,也就是一跳
Numeric MyEntryPrice; // 开仓价格,本例是开仓均价,也可根据需要设置为某次入场的价格
Numeric TrailingStart2(75); // 跟踪止损启动设置2
Numeric TrailingStop2(25); // 跟踪止损设置2
Numeric StopLossSet(40); // 止损设置
Numeric MyExitPrice; // 平仓价格
NumericSeries HighestAfterEntry; // 开仓后出现的最高价
NumericSeries LowestAfterEntry; // 开仓后出现的最低价
Begin
...
...
If(CurrentTime()>0.091700 And CurrentTime()<0.150900 And CrossOver(JC,RC1))
{
Buy(1,Q_AskPrice());
}
If(CurrentTime()>0.091700 And CurrentTime()<0.150900 And CrossUnder(JC,RC2))
{
SellShort(1,Q_BidPrice());
}
If(BarsSinceentry == 0)
{
HighestAfterEntry = Close;
LowestAfterEntry = Close;
If(MarketPosition <> 0)
{
HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice);
// 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
LowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice);
// 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
}
}else
{
HighestAfterEntry = Max(HighestAfterEntry,High);
// 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
LowestAfterEntry = Min(LowestAfterEntry,Low);
// 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
}
MinPoint = MinMove*PriceScale;
MyEntryPrice = AvgEntryPrice;
If(MarketPosition==1) // 有多仓的情况
{
If(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart2*MinPoint)
// 跟踪止损的条件表达式
{
If(Low <= HighestAfterEntry[1] - TrailingStop2*MinPoint)
{
MyExitPrice = HighestAfterEntry[1] - TrailingStop2*MinPoint;
If(Open < MyExitPrice)
MyExitPrice = Open;
// 如果该Bar开盘价有跳空触发,则用开盘价代替
Sell(1,MyExitPrice);
}
}else if(Low <= MyEntryPrice - StopLossSet*MinPoint)
//的止损处理
{
MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
If(Open < MyExitPrice) MyExitPrice = Open;
// 如果该Bar开盘价有跳空触发,则用开盘价代替
Sell(1,MyExitPrice);
}
}else if(MarketPosition==-1) // 有空仓的情况
{
If(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart2*MinPoint) // 跟踪止损的条件表达式
{
If(High >= LowestAfterEntry[1] + TrailingStop2*MinPoint)
{
MyExitPrice = LowestAfterEntry[1] + TrailingStop2*MinPoint;
If(Open > MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价有跳空触发,则用开盘价代替
BuyToCover(1,MyExitPrice);
}
}else If(High >= MyEntryPrice + StopLossSet*MinPoint)//可以在这里写上初始的止损处理
{
MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
If(Open > MyExitPrice) MyExitPrice = Open; // 如果该Bar开盘价有跳空触发,则用开盘价代替
BuyToCover(0,MyExitPrice);
}
}
If(CurrentTime()>0.150900 And MarketPosition <> 0)
{
Sell(1,0);
BuyToCover(1,0);
}
End斑斑、管理员,救命啊,谢谢啊!
- TB技术人员:
1.请问,0.090000的表达以软件时间和计算机系统时间中的哪个时间为准?
2.不成交的委托单软件如何处理?撤单如何编写?追价如何编写?
3.会不会有重复委托的情况?如何处理?
4.如果使用交易助手,成交单会反映至策略吗?
谢谢! - TB客服:
1.公式里所用到的currenttime是计算机系统时,
2.可以使用“交易助手”,配合完成未成交的撤单再重发的动作,
3.会有信号消失的可能性,建议修 改公式
4.不会。 - 网友回复:
1.公式里所用到的currenttime是计算机系统时,
2.可以使用“交易助手”,配合完成未成交的撤单再重发的动作 ...
小米 发表于 2012-3-2 10:21
谢谢,那一楼的代码实盘的话会有问题吗?会不会有重复委托的情况?
谢谢! - 网友回复:
1.公式里所用到的currenttime是计算机系统时,
2.可以使用“交易助手”,配合完成未成交的撤单再重发的动作 ...
小米 发表于 2012-3-2 10:21
撤单如何编写?追价如何编写?谢谢
如果以上指标公式不适用于您常用的行情软件
或者您想改编成选股公式,以便快速选出某种形态个股的话,
相关文章
-
没有相关内容