提示缺少分号的问题
VarsNumeric a;
Numeric b;
Begin
a=SwingHighBar(1,H,10,i);
b=SwingLowBar(1,L,10,i);
c1=C/C>1.05;
c2=C/((C)+C)/2)<1.005;
c3=C/((C)+C)/2)>0.995;
for i=1 To 100
if ( c1 & (c2 Or c3))
{
Buy(1,Open);
}
End
提示我c2那一行缺少分号,怎么回事? C2,C3这两行都是少了一个左括号。看看你想要的逻辑到底是什么,再决定什么位置加上相应的括号。
另外,for i = 1 to 100是不必要的吧?可以删掉 本帖最后由 hunter1988 于 2019-9-18 08:46 编辑
小米 发表于 2019-9-18 08:21 static/image/common/back.gif
C2,C3这两行都是少了一个左括号。看看你想要的逻辑到底是什么,再决定什么位置加上相应的括号。
另外,for ...
老师,我把代码改成了了如下所示(不知道为什么,我编辑一下回复,原来的c全都变成了c,请老师回答的时候注意一下):
Vars
Numeric a;
Numeric b;
NumericSeries i;
Bool c1;
Bool c2;
Bool c3;
Begin
a=SwingHighBar(1,H,10,i);
b=SwingLowBar(1,L,10,i);
c1=C/C>1.05;
c2=(C/((C)+C)/2)<1.005;
c3=(C/((C)+C)/2)>0.995;
for i=1 To 100
if ( c1 & (c2 Or c3))
{
Buy(1,Open);
}
End
提示:函数c没有被声明。怎么回事?
1.关于左括号:我的本意是昨天的收盘价除以a日前与b日前的收盘价均值,然后找出结果满足“小于1.005和大于0.995之间”的条件(按照你的指导,左边加了一个括号,但是括号数量不匹配了啊,左括号3个,右括号2个,这样居然编译通过了???);
2.关于i从1循环到100,是因为我事先不知道何时能满足条件c1、c2、c3,所以在100日内循环来寻找满足这种条件的情况。
3.再说一下我的整体思路:寻找一段上涨幅度大于5%的行情(c对应行情的启动时的低点,c对应行情的高点),然后等待行情回落至涨幅的1/2(也就是用昨天的收盘价除以a日前与b日前的收盘价均值来比较,昨收在均值上、下0.5%范围内,我就认为满足要求)。符合条件我就开仓。---请老师针对我这个简单的思路,看看编写的问题在哪。十分感谢!!! 按照我的本意,3个条件应该都是“与”才对,我改成了如下:
if ( c1 & c2 & c3)
提示:小括号不匹配。怎么回事? hunter1988 发表于 2019-9-18 08:54 static/image/common/back.gif
按照我的本意,3个条件应该都是“与”才对,我改成了如下:
if ( c1 & c2 & c3)
请先看一下帮助文档,了解一下公式的基础语法以及应用Vars
Numeric a;
Numeric b;
NumericSeries i;
Bool c1;
Bool c2;
Bool c3;
Begin
a=SwingHighBar(1,H,10,i);
b=SwingLowBar(1,L,10,i);
c1=C/C>1.05;
c2=(C/((C)+C)/2)<1.005;
c3=(C/((C)+C)/2)>0.995;
//for i=1 To 100
if ( c1 && c2 && c3)
{
Buy(1,Open);
}
End 小米 发表于 2019-9-18 10:07 static/image/common/back.gif
请先看一下帮助文档,了解一下公式的基础语法以及应用
老师,公式指南我看完一遍了。现在在试着上手写自己的公式。
我的整体思路:
1.寻找一段上涨幅度大于5%的行情(c对应行情的启动时的低点,c对应行情的高点);
2.然后等待行情回落至涨幅的1/2(也就是用昨天的收盘价除以a日前与b日前的收盘价均值来比较,昨收在均值上、下0.5%范围内)。
符合条件我就开仓。
---请老师针对我这个简单的思路,看看应该怎样改进我的程序呢? 本帖最后由 hunter1988 于 2019-9-18 12:47 编辑
hunter1988 发表于 2019-9-18 10:24 static/image/common/back.gif
老师,公式指南我看完一遍了。现在在试着上手写自己的公式。
我的整体思路:
Vars
Numeric a;
Numeric b;
Numeric i;
Numeric c1;
Numeric c2;
Numeric c3;
Numeric MyExitPrice;
Begin
for i=10 To 100
{
a=SwingHighBar(1,H,10,i);
b=SwingLowBar(1,L,10,i);
c1=C/C;
c2=C/((C+C)/2);
c3=C/((C+C)/2);
if ( c1>1.05 And c2<1.005 And c3>0.995 AND MarketPosition==0)//开仓条件:c1:出现5%涨幅的行情;c2、c3:回调涨幅的50%左右0.5%范围内;
{
Buy(1,Close);
}
}
if ( MarketPosition==1 And BarsSinceEntry>=1)
{
if(High>AvgEntryPrice+50)//止盈;
{
MyExitPrice = AvgEntryPrice + 50;
If(Open > MyExitPrice)
MyExitPrice = Open;
Sell(0,MyExitPrice);
}
Else if(Low<AvgEntryPrice-10)//止损;
{
MyExitPrice = AvgEntryPrice - 10;
If(Open < MyExitPrice)
MyExitPrice = Open;
Sell(0,MyExitPrice);
}
}
End
老师,我自己又改了一下程序。不知道代码是否实现了我自己的思路?
页:
[1]