extern int Lots = 0.1; extern int stoploss = 50; extern int takeprofit = 50; extern int iWPRperiod1 = 50; extern int iWPRperiod2 = 60; extern int magic = 555;
int start() {
int stoploss, takeprofit, iWPRperiod1,iWPRperiod2, magic, lots;
if (iWPR(NULL,0,iWPRperiod1,0)>iWPR(NULL,0,iWPRperiod2,0)) { OrderSend(NULL, OP_BUY,1,Ask,lots,stoploss,takeprofit,0,magic,0,Red); } if (iWPR(NULL,0,iWPRperiod1,0)<iWPR(NULL,0,iWPRperiod2,0)) { OrderSend(NULL, OP_BUY,1,Ask,Lots,stoploss,takeprofit,0,magic,0,Red); } return(0); }
>> 对不起,我只是问是否可以不从Meta Quotes服务器下载报价历史,而是从单独的经纪公司服务器下载。 我会请你保持你的假设(无意冒犯),因为MTS不是我的,我打算检查它是否对经纪公司的变化敏感。
我如何在EA中捕捉到一个新条形的出现?
像这样的:
static int LastBars;
IBARS = iBars(Symbol(), Period())。
如果(LastBars != IBARS)
{
LastBars = IBARS;
.......
......
.......
}
像这样的:
static int LastBars;
IBARS = iBars(Symbol(), Period())。
如果(LastBars != IBARS)
{
LastBars = IBARS;
.......
......
.......
}
是的,所以没有关于新蜡烛出现的事件,好的,非常感谢你。
就是这样,是时候学习如何编程了,现在我要问很多书呆子的问题。)
在这里,我们去...一。
这到底是什么? 一个简单的专家顾问,我做错了什么?* '\end_of_program * 我很讨厌这个错误,而且不仅仅是在这个脚本中。
extern int Lots = 0.1;
extern int stoploss = 50;
extern int takeprofit = 50;
extern int iWPRperiod1 = 50;
extern int iWPRperiod2 = 60;
extern int magic = 555;
int start()
{
int stoploss, takeprofit, iWPRperiod1,iWPRperiod2, magic, lots;
if (iWPR(NULL,0,iWPRperiod1,0)>iWPR(NULL,0,iWPRperiod2,0))
{
OrderSend(NULL, OP_BUY,1,Ask,lots,stoploss,takeprofit,0,magic,0,Red);
}
if (iWPR(NULL,0,iWPRperiod1,0)<iWPR(NULL,0,iWPRperiod2,0))
{
OrderSend(NULL, OP_BUY,1,Ask,Lots,stoploss,takeprofit,0,magic,0,Red);
}
return(0);
}
首先,检查支架:它们都是开口支架。{...}而不是{...}。第一个错误告诉你,程序中的括号没有正确放置。
然后你会得到一条信息,说你在行末缺少分号,甚至会得到一个行号。
而且这种善举 会更多,因为报告错误是一种善举,而不是.......。翻译错误信息,几乎一切都很清楚。
大家好。这里有一个问题。
哪个版本的代码对系统资源(和时间)要求较低?
我已经写了一个EA,它看起来相当棘手,我认为。需要很长的时间来测试...
我在想,也许以某种方式缩短了计算时间。
在这种情况下,是执行OrderType()还是提取数组mass[i,1]的元素更容易?
...
OrderSelect(mass[i,0],SELECT_BY_TICKET); //выбрать ордер
sl=TRALING(OrderType()); //вычисляет стоп-лосс
...
//или
...
OrderSelect(mass[i,0],SELECT_BY_TICKET); //выбрать ордер
sl=TRALING_BARS(mass[i,1]); //вычисляет стоп-лосс
...
与OrderStopLoss等相同。
或者举例来说。
...
//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0))
...
//и ниже
...
//пересекла ли главная линия стохастика сигнальную линию cнизу вверх
if(
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0))
...
创建变量并为其分配函数值,然后使用它们,这是否有意义?
的类型将是
...
double a=iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF);
double b=iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF);
double c=iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0);
double d=iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0);
...
//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if( a>b && c<d )
...
//пересекла ли главная линия стохастика сигнальную линию cнизу вверх
if( a<b && c>d )
...
是每次计算停顿的成本更高,还是创建一个变量,计算一次停顿,然后从变量中读取数值?
请指示,程序员。谢谢你
不,我不打算永久修复你的代码。你有技术可以找到它。
我应该注意的唯一一点是,我不喜欢你使用的记号。有了这样的括号安排,IMHO,错误就更难发现了。看看KimIV 是怎么写的。
大家好。这里有一个问题。
哪个版本的代码对系统资源(和时间)要求较低?
我已经写了一个EA,它看起来相当棘手,我认为。这需要很长的时间来测试。
我想我可能会以某种方式减少计算量。
在这种情况下,是执行OrderType()还是提取数组元素mass[i,1]更容易?
到底是每次计数,还是创建一个变量,计数一次,然后从变量中读取数值,成本更高?
请指示,程序员。谢谢你
你必须在0bar上工作吗?
你试图缩短事情,以至于我不禁想,这不是重点......
你必须在0bar下工作吗?
只是,你已经在努力缩短事情,以至于你不能不认为这与他们无关......
不,我并不是一个小白脸,如果你是这个意思的话......
为什么它不工作...
只是机器的负荷已经到了极限,CPU已经沸腾了......当你开始运行它时,它就开始计数...
我不想平白无故地重写它--在程序中有很多这样的东西...
那么问题是什么呢?