高手,求TB简语言,阶梯式止盈止损,代码(非最低高点回撤法)翻译成TB简语言,谢谢
// 参数声明
Params
Numeric ProfitStep(0.01); // 止盈阶梯大小
Numeric StartStep(0.02); // 触发阶梯移动的初始盈利距离
Numeric StopLossStep(0.005); // 止损阶梯大小
EndParams
// 变量声明
Vars
NumericSeries MyExitPrice(0); // 动态止盈价格
NumericSeries MyStopLoss(0); // 动态止损价格
NumericSeries EntryPrice(0); // 入场价格
Bool LongTrigger(False); // 多头阶梯触发标志
Bool ShortTrigger(False); // 空头阶梯触发标志
EndVars
// 主程序逻辑
Begin
// 重置逻辑:当无持仓时,重置止盈价格、止损价格和标志
If(MarketPosition == 0) Then
Begin
MyExitPrice = 0;
MyStopLoss = 0;
EntryPrice = 0;
LongTrigger = False;
ShortTrigger = False;
End
// 多头持仓逻辑
If(MarketPosition == 1) Then
Begin
// 判断是否触发阶梯移动
If(LongTrigger == False And Close > (EntryPrice + StartStep)) Then
Begin
LongTrigger = True;
End
// 动态调整止盈点
If(LongTrigger == True) Then
Begin
If(Close > (MyExitPrice + ProfitStep)) Then
Begin
MyExitPrice = MyExitPrice + ProfitStep;
End
End
// 动态调整止损点
If(LongTrigger == True) Then
Begin
If(Close > (MyStopLoss + StopLossStep)) Then
Begin
MyStopLoss = MyStopLoss + StopLossStep;
End
End
// 绘制止盈线和止损线
PlotNumeric("多头止盈线", MyExitPrice);
PlotNumeric("多头止损线", MyStopLoss);
// 执行平仓(价格回落触及止盈线或止损线)
If(Close < MyExitPrice Or Close < MyStopLoss) Then
Begin
Sell(1, Close); // 平仓
End
End
// 空头持仓逻辑
If(MarketPosition == -1) Then
Begin
// 判断是否触发阶梯移动
If(ShortTrigger == False And Close < (EntryPrice - StartStep)) Then
Begin
ShortTrigger = True;
End
// 动态调整止盈点
If(ShortTrigger == True) Then
Begin
If(Close < (MyExitPrice - ProfitStep)) Then
Begin
MyExitPrice = MyExitPrice - ProfitStep;
End
End
// 动态调整止损点
If(ShortTrigger == True) Then
Begin
If(Close < (MyStopLoss - StopLossStep)) Then
Begin
MyStopLoss = MyStopLoss - StopLossStep;
End
End
// 绘制止盈线和止损线
PlotNumeric("空头止盈线", MyExitPrice);
PlotNumeric("空头止损线", MyStopLoss);
// 执行平仓(价格上涨触及止盈线或止损线)
If(Close > MyExitPrice Or Close > MyStopLoss) Then
Begin
BuyToCover(1, Close); // 平仓
End
End
End
参考类似代码自行编写,也可去收费代编版面发帖
注意:简语言默认开盘发单,只能实现一些简单策略,做不到tbquant那样的开平仓
//多头止盈
C>BKPRICE*1.05,SP;
//多头止损 200点
C<BKPRICE-200,SP;
//多头止损 阶梯性的,每上涨1%的盈利,跟踪止损的幅度阶梯性上提,从最初的0.5%依次上提0.5%
BKHIGH>BKPRICE*1.01&&C<BKHIGH-INTPART((BKHIGH-BKPRICE)/BKPRICE*100)*0.005*BKPRICE,SP;