老师,给我看看这个编程,我刚开始学,不会的地方太多了.
我试着编了一个程序,用一个5日波动幅度,在5分或15分钟线上做的一个日内系统,全文如下,我知道错了地方太多,只是不知道都在什么地方,请帮我修改一下,正在学习中.我将5日波动幅度用了一个读取数据库操作,在超级图表上建立了一个日线图和分钟线图.
现全文如下:
Params
numeric tr1(0.3); \\开仓波动系数
numeric tr2(0.5); \\止损波动系数
numeric tr3(0.7); \\止赢波动系数
Vars
numeric trvalue; \\日线图上的波动幅度
numeric TRV1; \\开仓价格幅度
numeric trv2; \\止损价格幅度
numeric trv3; \\止赢价格幅度
numeric myentry1; \\我的多仓建仓价格
numeric myexit2; \\我的多仓止损价格
numeric myexit3; \\我的多仓止赢价格
numeric myentry4; \\我的空仓建仓价格
numeric myexit5; \\我的空仓止损价格
numeric myexit6; \\我的空仓止赢价格
Numeric kp; \\全局变量的值即当天的开盘价
Begin
trvalue=GetTBProfileString("dayATR",ATR); \\读取日内波动幅度并赋值于变量
trv1=tr1*trvalue; \\建仓价格幅度
trv2=tr2*trvalue; \\止损价格幅度
trv3=tr3*trvalue; \\止赢价格幅度
if(date!=date&&time!=time) \\如果是当天的第一根K线
{
SetGlobalVar(0,open); \\将开盘价赋值于全局变量
kp=GetGlobalVar(0); \\从全局变量取量并赋值于变量
}
myentry1=kp-trv1; \\我的多仓开盘价格=当天开盘价格-建仓幅度
myexit2=kp-trv2; \\我的多仓止损价格=当天开盘价格-止损幅度
myexit3=kp+trv3; \\我的多仓止赢价格=当天开盘价格+止赢幅度
myentry4=kp+tr1; \\我的空仓开盘价格=当天开盘价格+建仓幅度
myexit5=kp+trv2; \\我的空仓止损价格=当天开盘价格+止损幅度
myexit6=kp-trv3; \\我的空仓止赢价格=当天开盘价格-止赢幅度
if(open<=myentry1&&open>=myexit2) \\如果开盘价小于我的多仓建仓价格并且大于我的多仓止损价格,以开盘价建立多仓
Buy(1,open);
if(MarketPosition==1&&BarsSinceEntry>=1) \\如果在我有多仓的情况下,并且当前K线不是建仓K线
if(open<=myexit2) \\如果开盘价小于我的多仓止损价,以开盘价平掉多仓
Sell(1,open);
Else if(open>=myexit3} \\如果开盘价大于我的多仓止赢价,以开盘价平掉多仓
Sell(1,open);
if(open>=mytrv4&&open<=myexit5) \\如果开盘价大于我的空仓建仓价格并且小于我的空仓止损价格,以开盘价建立空仓
SellShort(1,open);
if(MarketPosition==-1&&BarsSinceEntry>=1) \\如果在我有空仓的情况下并且当前K线不是我的建仓K线
if(open>=myexit5) \\如果开盘价大于我的空仓止损价格,以开盘价平掉空仓
BuyToCover(1,open);
Else if(open<=myexit6) \\如果开盘价小于我的空仓止赢价格,以开盘价平掉空仓
BuyToCover(1,open);
If(time==0.1455&&CurrentTime<=0.1459) \\时间在14:55分至14:59分时,全部平仓
Sell(0,open);
End
第一个错误就显示在第30行缺少分号,我实在搞不懂. 人工置顶! \\ 改成 //就行了。这是window程序,不是unix
页:
[1]