如何编码? - 页 78

 

我现在让它工作了。

 
hedge4x:
这一行 while(!IsAllClosed) {CloseAllTrades(); return;}。

在主启动时将关闭所有未结头寸,如果MT下降

而我又重新启动它。 是否有办法将这一行

在closealltrades函数中,这样它就不会在MT4重启后关闭所有未结头寸了。

的方法,以便在MT4重启后不关闭所有未结头寸?

谢谢。

是的,对不起,你可以这样在启动时定义bool。

bool IsAllClosed = true ; //Global variable[/PHP]

Then it becomes even better to define a extern variable, so you can keep the control :[PHP]extern bool CloseAll = false ; //Global variable

void CloseAllTrades()

{

int cnt;

CloseAll = false;

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

CloseAll = CloseAll || !OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

}

}

void start()

{

while(CloseAll) {CloseAllTrades(); return;}

...

这种方法的主要优点是,EA会在每个点位尝试关闭每个头寸,直到全部关闭。

 

需要帮助的是我的半专业性的第一个EA

大家好...

我在伟大的专家顾问Bulder网站上做了一个EA,我对它进行了测试,发现它在过去的一年中是可以盈利的,但我认为它可以得到加强...

所以,如果有人能帮助改善该EA?

关于EA的详细情况...

该EA基于两个指标,其中一个是我的,另一个可以在bublic fourms上找到 "零滞后macd"。

现在这个专家一直在工作,先是买入,然后收盘,再转为卖出,如此反复......

我需要让它只在短暂的时间内工作,添加一个资金管理机制,最后我需要将买入或卖出的时间推迟到下一个 "1分钟 "的蜡烛上,但事实上EA在1H蜡烛上工作...

所以希望能在这方面找到帮助。

谢谢大家

致以最崇高的敬意

塔莫

附加的文件:
 

如何引用我正在运行的文件名?

你好。

我想知道我怎样才能引用我正在运行的文件名。

例如,如果我运行一个名为supertrader.mq4的脚本,我想从supertrader脚本中打开一个名为supertrader_logfile的日志文件。

是否有一个变量可以保存我正在运行的文件的名称?

谢谢。

 
star90:
你好。

我想知道我怎样才能引用我正在运行的文件名。

例如,如果我运行一个名为supertrader.mq4的脚本,我想从supertrader脚本中打开一个名为supertrader_logfile的日志文件。

是否有一个变量来保存我正在运行的文件的名称?

谢谢。

也许可以通过在脚本中加入void Print( ...)。

void Print( ...) 打印一条信息到专家日志。

 

致阿德里亚

你看到我的PM了吗?

大贝

 

狼潮。我需要你的帮助

亲爱的Codersguru。

我不是一个程序员,在我的试验和错误风格中,我试图改进的wolf wave给出的信号是 "第二个参数,ObjectTextSetFunction必须是一个字符串。

请帮助我改正。

谢谢您的期待。

附加的文件:
wolfwave.rar  3 kb
 

嗨,我需要一个布尔函数,如果5分钟过去了,或10分钟或其他什么,则返回真。我已经知道如何检查一个新栏,但它不够频繁。

 
nittany1:
嗨,我需要一个bool函数,如果5分钟过去了,或10分钟过去了,则返回true。我已经知道如何检查一个新条,但它不够频繁。

也许

double LastRedraw = 0;

if(TimeLocal() - LastRedraw > 300)

{

Print();

ObjectsRedraw();

Print("ObjectsRedraw Done");

LastRedraw = TimeLocal();

}

 
Linuxser:
也许

double LastRedraw = 0;

if(TimeLocal() - LastRedraw > 300)

{

Print();

ObjectsRedraw();

Print("ObjectsRedraw Done");

LastRedraw = TimeLocal();

}

[/code]

或者这样。

[代码]

bool ElapsedTimeCheck(int MyMinutes)

{

静态数据时间OldTime。

如果(OldTime == 0)

OldTime = TimeCurrent() + MyMinutes * 60; // Initialised once...

如果(TimeCurrent() >= OldTime)

{

OldTime = TimeCurrent() + MyMinutes * 60;

bool cond = true;

}

否则 cond = false。

return(cond);

}