请问各位高手老师,这个编程为什么不能实现止盈呢

//------------------------------------------------------------------------

// 简称: DualMA

// 名称: 双均线交易系统

// 类别: 公式应用

// 类型: 内建应用

//------------------------------------------------------------------------

Params

Numeric M3(3);// 短期指数平均线参数

Numeric M5(5);// 长期指数平均线参数

Numeric M8(8);// 短期指数平均线参数

Numeric M10(10);// 长期指数平均线参数

Numeric tPrice(0);       //启动跟踪止盈的触发价,0为立即跟踪,>0为触发价,<0为触发百分比

Numeric TrailLength(1);  //跟踪止盈百分比%

Vars

Series<Numeric> MA3;

Series<Numeric> MA5;

Series<Numeric> MA8;

Series<Numeric> MA10;

Numeric MinPoint;           // 一个最小变动单位,也就是一跳

   Numeric MyEntryPrice;       // 开仓价格,本例是开仓均价,也可根据需要设置为某次入场的价格

   Numeric TrailingStart1(50); // 跟踪止损启动设置1

   Numeric TrailingStart2(80); // 跟踪止损启动设置2

   Numeric TrailingStop1(30);  // 跟踪止损设置1

   Numeric TrailingStop2(20);  // 跟踪止损设置2

 

   Series<Numeric> MyExitPrice;        // 平仓价格

 

   Series<Numeric> HighAfterEntry(0,2);

Series<Numeric> LowAfterEntry(99999999,2);

Series<Bool> StartTrail(False);

Numeric TakeProfitset(30);    //止盈设置

Numeric StopLossset(20);   //止损设置

   Series<Numeric> BarsSinceEntr;



Events

OnBar(ArrayRef<Integer> indexs)

{

MA3 = AverageFC(Close,M3);//3天均线

MA5 = AverageFC(Close,M5);//5天均线

MA8= AverageFC(Close,M8);//8天均线

MA10= AverageFC(Close,M10);//10天均线

   MinPoint = MinMove*PriceScale;

       PlotNumeric(\"MA3\",MA3);

       PlotNumeric(\"MA5\",MA5);

PlotNumeric(\"MA8\",MA8);

PlotNumeric(\"MA10\",MA10);

If(MarketPosition <>1  AND CrossOver(MA3[1] ,MA8[1] ))

{

Buy(0,Open);

MyEntryPrice=Open;

}

If(MarketPosition==1 and BarsSinceEntr>=1)//有多仓的情况

 {

If(High>=MyEntryPrice+TakeProfitset*MinPoint)   //止盈条件表达式

{

MyExitPrice=MyEntryPrice+TakeProfitset*MinPoint;

If(Open>MyExitPrice)   MyExitPrice=Open;  ////如果该bar开盘价即跳空触动,用开盘价触动

Sell(0,Close);

}

 }

If(MarketPosition <>-1 AND CrossUnder(MA5[1] ,MA10[1] ) )

{

Sell(0,Open);

}

 

}


请高手老师帮忙看看这个为什么不能实现止盈的,搞了好久都不行,谢谢老师了!

老师请问这个函数BarsSinceExit怎么使用呢
请问这个功能编程怎么实现
求教高手老师
请问各位老师XAverage是加权平均吗?
请教各位高手,为什么tb中0日均线数值的数值=1.797693*****?不是应该不存在吗?
请问各位老师,合约乘数对应的变量名称是什么?
老师问下这个应该如何编写呢
请教各位tb有老师协助处理编程问题吗
老师,麻烦你帮我看看这个是怎么回事呢?
老师,请问下这个错误该怎样修改啊

谢谢老师,现在变成第三根平仓,死叉和止盈好像不起作用,能帮忙看看再改那里吗

Params

Numeric M3(3);// 短期指数平均线参数


Numeric M5(5);// 长期指数平均线参数


Numeric M8(8);// 短期指数平均线参数


Numeric M10(10);// 长期指数平均线参数


Numeric tPrice(0);       //启动跟踪止盈的触发价,0为立即跟踪,>0为触发价,<0为触发百分比


Numeric TrailLength(1);  //跟踪止盈百分比%


Vars


Series<Numeric> MA3;


Series<Numeric> MA5;


Series<Numeric> MA8;


Series<Numeric> MA10;


Numeric MinPoint;           // 一个最小变动单位,也就是一跳


  Numeric MyEntryPrice;       // 开仓价格,本例是开仓均价,也可根据需要设置为某次入场的价格


  Numeric TrailingStart1(50); // 跟踪止损启动设置1


  Numeric TrailingStart2(80); // 跟踪止损启动设置2


  Numeric TrailingStop1(30);  // 跟踪止损设置1


  Numeric TrailingStop2(20);  // 跟踪止损设置2



  Series<Numeric> MyExitPrice;        // 平仓价格



  Series<Numeric> HighAfterEntry(0,2);


Series<Numeric> LowAfterEntry(99999999,2);


Series<Bool> StartTrail(False);


Numeric TakeProfitset(30);    //止盈设置


Numeric StopLossset(20);   //止损设置





Events


OnBar(ArrayRef<Integer> indexs)


{


MA3 = AverageFC(Close,M3);//3天均线


MA5 = AverageFC(Close,M5);//5天均线


MA8= AverageFC(Close,M8);//8天均线


MA10= AverageFC(Close,M10);//10天均线


  MinPoint = MinMove*PriceScale;


      PlotNumeric(\"MA3\",MA3);


      PlotNumeric(\"MA5\",MA5);


PlotNumeric(\"MA8\",MA8);


PlotNumeric(\"MA10\",MA10);


If(MarketPosition <>1  AND CrossOver(MA3[1] ,MA8[1] ))


{


Buy(0,Open);


MyEntryPrice=Open;


}


If(MarketPosition==1 and BarsSinceEntry>=2)//有多仓的情况


{


If(High>=MyEntryPrice+TakeProfitset*MinPoint)   //止盈条件表达式


{


MyExitPrice=MyEntryPrice+TakeProfitset*MinPoint;


If(Open>MyExitPrice)   MyExitPrice=Open;  ////如果该bar开盘价即跳空触动,用开盘价触动


Sell(0,Close);


}


}


If(MarketPosition <>-1 AND CrossUnder(MA5[1] ,MA10[1])  and BarsSinceEntry>=2  )


{


Sell(0,Open);


}


}

Integer BarsSinceEntry(8)
是不是这样就可以了

王老师好,我还以为它自己计算的呢,请问有赋值的范例可以参考一下吗?谢谢老师

BarsSinceEntr?

你定义了这个赋值了吗