- 精华
- 0
- 在线时间
- 118 小时
- UID
- 1271
- 积分
- 423
- 帖子
- 74
- 阅读权限
- 50
- 注册时间
- 2008-3-5
- 最后登录
- 2021-2-8
- 精华
- 0
- UID
- 1271
- 积分
- 423
- 帖子
- 74
- 主题
- 21
- 阅读权限
- 50
- 注册时间
- 2008-3-5
- 最后登录
- 2021-2-8
|
举个简单的例子,希望老师给个模板,好让我参考一下,谢谢,比如简单的均线顺势交叉:
1做多:MA30均线向上,并且MA5均线金叉MA20时做多,设止勋30点,获利100点,追踪止勋40;
2做空:MA30均线向下,并且MA5均线死叉MA20时做空,设止勋30点,获利100点,追踪止勋40;
3多单平仓条件:
MA5均线在MA30之上超出40点并且MA5均线死叉MA20时平仓多单,或者2次MA5均线死叉MA20,
平仓条件符合后,必须还符合多持仓获利大于30点;
4空单平仓条件:
MA5均线在MA30之下超出40点并且MA5均线金叉MA20时平仓多单,或者2次MA5均线金叉MA20,
平仓条件符合后,必须还符合空持仓获利大于30点;
每次进单一手,以下是我自己编的老是提示出错,请老师批改,谢谢:
Params
Numeric StopLoss(30); //止勋30点
Numeric TrailingStop(40); //追踪止勋40
Numeric TakeProfit(100); //获利100点
Numeric Lots(1); //进单一手
Numeric M5(5);
Numeric M20(20);
Numeric M30(30);
Vars
NumericSeries MA5;
NumericSeries MA20;
NumericSeries MA30;
Bool BK1;
Bool SK1;
Bool BP1;
Bool BP2;
Bool SP1;
Bool SP2;
Begin
MA5=AverageFC(Close,M5);
MA20=AverageFC(Close,M20);
MA30=AverageFC(Close,M30);
If(MarketPosition ==0 ) // 当前空仓
{
BK1=COUNTIF(MA30[0]>MA30[1],3)>2&&CrossOver(MA5,MA20);
SK1=COUNTIF(MA30[0]<MA30[1],3)>2&&CrossOver(MA20,MA5);
if (BK1) //多条件
{
Buy(Lots,Close); //买进单一手
SetStopLoss(1,StopLoss,false); //设止勋30点
SetProfitTarget(1,TakeProfit,false); //设获利100点
SetDollarTrailing(TrailingStop,false); //设追踪止勋40
}
if (SK1) //空条件
{
SellShort(Lots,Close); //卖出单一手
SetStopLoss(1,StopLoss,false); //设止勋30点
SetProfitTarget(1,TakeProfit,false); //设获利100点
SetDollarTrailing(TrailingStop,false); //设追踪止勋40
}
}
If(MarketPosition ==1 ) // 有多仓的情况
{
SP1=MA5>MA30&&(MA5-MA30)>40&&CrossOver(MA20,MA5); //多平条件1
SP2=COUNTIF(CrossOver(MA20,MA5),25)>=2; //多平条件2
if ((SP1||SP2)&&A_BuyProfitLoss()>30) //在多仓盈利超30点后并且符合多平仓条件
{
Sell; //卖出平仓
}
}
If(MarketPosition ==-1 ) // 有空仓的情况
{
BP1=MA5<MA30&&(MA30-MA5)>40&&CrossOver(MA5,MA20); //空平条件1
BP2=COUNTIF(CrossOver(MA5,MA20),25)>=2; //空平条件2
if ((BP1||BP2)&&A_SellProfitLoss()>30) //在空仓盈利超30点后并且符合空平仓条件
{
BuyToCover(Lots,Close) ; //卖出平仓
}
}
End
错误提示为无法识别的字符串: if ((SP1||SP2)&&A_BuyProfitLoss()>30) 和 if ((BP1||BP2)&&A_SellProfitLoss()>30)
希望各位老师,版主帮忙修改,谢谢,谢谢了 |
|