固定手数操作,止损止盈按1:2、1:3或1:4等,这是很简单的系统。这个应该是我在哪个博客上看到的操作风格,那时还不怎么相信,觉得太随意了吧。但做久了,还真是发现按照概率来操作,结果就是这么牛逼,越简单的系统,只要在概率上多出一点优势,那结果确实是好的,反正给我的经验比所谓的技术分析好多了。
我们先来看下这个固定止盈止损代码的意思,后边再把这简单有效的的交易系统附上。
Vars
Numeric MinPoint; // 声明数值变量MinPoint,看单词都知道了最小变动单位,也就是一跳。//
Numeric MyEntryPrice; // 声明数值变量MyEntryPrice,依正文开仓价格,本例是开仓均价,也可根据需要设置为某次入场的价格。//
Numeric TakeProfitSet(30); // 声明数值变量TakeProfitSet,依正文看就是止赢设置初始为30了,这个初始值看个人习惯设定的,没有强制。//
Numeric StopLossSet(20); // 声明数值变量StopLossSet,止损设置为20了。//
Numeric MyExitPrice; // 声明数值变量MyExitPrice,正文里就是平仓价格了。//
Begin
...
MinPoint = MinMove*PriceScale;//固定公式,最小跳动价。//
MyEntryPrice = AvgEntryPrice;//开仓价等于建仓均价了,这个AvgEntryPrice是系统自带平均建仓意思,不需声明,直接用了。//
If(MarketPosition==1) // 有多仓的情况下。//
{
If(High >= MyEntryPrice + TakeProfitSet*MinPoint) // 止赢条件表达式,假如高价大于等于开仓均价加上止盈固定系数乘以最小跳动价格。//
{
MyExitPrice = MyEntryPrice + TakeProfitSet*MinPoint;//平仓价格等于 开仓价加上系数乘以最小跳动价。//
If(Open > MyExitPrice) MyExitPrice = Open; // 假如k线的开盘价有跳空触发时,则用开盘价代替平仓价格。//
Sell(0,MyExitPrice);//平仓。//
}
else if(Low <= MyEntryPrice - StopLossSet*MinPoint)// 止损条件表达式,假如低价小于等于开仓价格减去止损系数乘以最小跳动价。//
{
MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;//平仓价格等于开仓价减去止损系数乘以最小跳动价。//
If(Open < MyExitPrice) MyExitPrice = Open; // 假如k线的开盘价有跳空触发,则用开盘价代替平仓价格。//
Sell(0,MyExitPrice);//平仓。//
}
}
else if(MarketPosition==-1) // 有空仓的情况下,执行的操作,其实就是把多单反过来。//
{
If(Low <= MyEntryPrice - TakeProfitSet*MinPoint) // 止赢条件表达式,低价小于等于开仓价减去止盈固定系数乘以最小跳动价。//
{
MyExitPrice = MyEntryPrice - TakeProfitSet*MinPoint;//平仓价等于开仓价减去固定系数乘以最小跳动价。//
If(Open < MyExitPrice) MyExitPrice = Open; // 假如k线开盘价有跳空触发,则用开盘价代替平仓价。//
BuyToCover(0,MyExitPrice);//平仓。//
}
else if(High >= MyEntryPrice + StopLossSet*MinPoint)// 止损条件表达式,高价大于等于开仓价加上止损固定系数乘以最小跳动价。//
{
MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;//平仓价等于开仓价加上止损系数乘以最小跳动价。//
If(Open > MyExitPrice) MyExitPrice = Open; // 假如k线开盘价有跳空触发,则用开盘价代替平仓价。//
BuyToCover(0,MyExitPrice);//平仓。//
}
}
...
End
固定止盈止损模板就是如此了,我们直接用它。操作规则如下:
1.止损止盈比为1:4,就是说操作错四次,盈利一次就可以回来。
2.前一个k线收盘价大于(或小于)再前一个k线收盘价,直接用开盘价开仓了。
3.习惯性的加一条均线,在均线上方只开多,在下方只开空。 用这么简单的系统操作,代码如下:
Params
Numeric Length(200);
Vars
NumericSeries AvgValue3;
Numeric MinPoint;
Numeric MyEntryPrice;
Numeric TakeProfitSet(120);
Numeric StopLossSet(30);
Numeric MyExitPrice;
Begin
AvgValue3 = AverageFC(Close,Length);
PlotNumeric("MA3",AvgValue3);
If(!CallAuctionFilter()) Return;
MinPoint = MinMove*PriceScale;
MyEntryPrice = AvgEntryPrice;
if(MarketPosition <> 1 And Close[1] > Close[2] And Close[1]>AvgValue3)
{
Buy(1,Open);
}
If(MarketPosition <> -1 And Close[1] < Close[2] And Close[1]<AvgValue3)
{
SellShort(1,Open);
}
If(!CallAuctionFilter()) Return;
MinPoint = MinMove*PriceScale;
MyEntryPrice = AvgEntryPrice;
If(MarketPosition==1)
{
If(High >= MyEntryPrice + TakeProfitSet*MinPoint)
{
MyExitPrice = MyEntryPrice + TakeProfitSet*MinPoint;
If(Open > MyExitPrice) MyExitPrice = Open;
Sell(0,MyExitPrice);
}else if(Low <= MyEntryPrice - StopLossSet*MinPoint)
{
MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
If(Open < MyExitPrice) MyExitPrice = Open;
Sell(0,MyExitPrice);
}
}else if(MarketPosition==-1)
{
If(Low <= MyEntryPrice - TakeProfitSet*MinPoint)
{
MyExitPrice = MyEntryPrice - TakeProfitSet*MinPoint;
If(Open < MyExitPrice) MyExitPrice = Open;
BuyToCover(0,MyExitPrice);
}else if(High >= MyEntryPrice + StopLossSet*MinPoint)
{
MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
If(Open > MyExitPrice) MyExitPrice = Open;
BuyToCover(0,MyExitPrice);
}
}
End
结果就是这么好,不管你信不信,反正我是挺喜欢这个系统的,时常用这个来做指南,当然,它的收益回调也是挺让人头疼的,但一直按照程序操作,最终结果却是很可观的。还是老话,自己实盘观察一段时间,全面了解交易系统,才真正懂得如何操作。
热门跟贴