如何编码? - 页 108

 

从命令行运行MetaTrader脚本

我希望能够从命令行中运行一个脚本或程序,以执行买入订单。 没有任何规则。 当我从命令行中输入时,它应该买入1个欧元兑美元多头头寸。

如何才能做到这一点?

谢谢。

paco

 

基于箭头的简单指标和EA

大家好。

最近我想做一个简单的EA,可以在一个基于箭头的指标上工作。我想让EA在任何时候都能维持一个订单。如果箭头指向下方,之前的买单被关闭,卖单被打开。如果箭头指向上方,之前的卖单被关闭,买单被打开。我正在使用测试器(可视化模式)来验证我的代码。似乎无论我如何尝试,当箭头指标指向上方或下方时,EA都不会关闭和打开头寸。后面的测试证实了该EA没有正常工作。EA没有在指标显示的箭头位置开仓和平仓,而是在一些不同的时间关闭/打开订单。我不明白为什么我的代码不工作。

在开始语句的开头,我有以下代码。

if (Time[0] == savedTime) {

返回(0)。

} else {

savedTime = Time [0];

}

这(我希望)将确保启动语句中的代码只在新的条形图形成时执行。后来在开始子程序的正文中,我用iCustom函数查询指标。该请求看起来如下。

iCustom (... 1)

最后一个参数1指定的是之前形成的条形,这就是为什么它不是0。但是后来我用OrderClose关闭已开的订单,用OrderSend打开新的订单。我想,这两个函数必须能够即时执行。

底线 是。我正试图创建一个基于箭头指标的EA。该指标要么向上,要么向下。在我看来(我可能是不正确的),我需要做的唯一一件事是关闭之前的订单,并在下一栏形成时打开新的订单。我将非常感谢对这个问题的任何意见。

谢谢大家。

[删除]  

有谁能告诉我如何在指标中写入到期日 的代码?

谢谢。

 
[删除]  
newdigital:
请看这个主题https://www.mql5.com/en/forum/174194

谢谢你的链接。我终于找到了我要找的那一页 这里

 

如何在一个单独的窗口上获得两个指标?

谁能告诉我如何在一个单独的窗口上获得2个指标,使它们相互重叠?

谢谢您的帮助。

戴夫

 

只需要打开订单的EA

大家好。

我想知道是否有人能帮助我创建一个EA,只在格林尼治标准时间00:00AM为任何货币对打开4个不同的订单。

1手买入

1手买入

1手卖出

1手卖出

全部在00:00GMT打开

谢谢你的帮助

阮仕德56

[删除]  
bdht:
嗨,大家好。

最近我想做一个简单的EA,能在一个基于箭头的指标上工作。我试图使该EA在任何时候都能维持一个订单。如果箭头指向下方,之前的买单被关闭,卖单被打开。如果箭头指向上方,之前的卖单被关闭,买单被打开。我正在使用测试器(可视化模式)来验证我的代码。似乎无论我如何尝试,当箭头指标指向上方或下方时,EA都不会关闭和打开头寸。后面的测试证实了该EA没有正常工作。EA没有在指标显示的箭头位置开仓和平仓,而是在一些不同的时间关闭/打开订单。我不明白为什么我的代码不工作。

在开始语句的开头,我有以下代码。

if (Time[0] == savedTime) {

返回(0)。

} else {

savedTime = Time [0];

}

这(我希望)将确保启动语句中的代码只在新的条形图形成时执行。后来在开始子程序的正文中,我用iCustom函数查询指标。该请求看起来如下。

iCustom (... 1)

最后一个参数1指定的是之前形成的条形,这就是为什么它不是0。但后来我用OrderClose关闭已开的订单,用OrderSend打开新的订单。我想,这两个函数必须能够即时执行。

底线是。我正试图创建一个基于箭头指标的EA。该指标要么向上,要么向下。在我看来(我可能是不正确的),我需要做的唯一一件事是关闭之前的订单,并在下一栏形成时打开新的订单。我将非常感谢对这个问题的任何意见。

谢谢大家。

如果你只看你的信号,而你的 "系统 "在信号改变时关闭和扭转,那么在检查进入之前检查退出是很重要的。否则,当一个新的进入信号出现时,EA无法进入交易,因为之前的交易仍在进行。而当EA平仓时,它将只在下一个交易日进场,因为这部分代码一个交易日只出现一次。

希望这能说明问题(以我的英语来说!)。

费鲁弗斯

 
Dave137:
谁能告诉我,如何在一个单独的窗口中获得两个指示器,使它们相互重叠?

提前感谢您的协助!

戴夫

请看这一页:https://www.mql5.com/en/forum/172923

 

好吧,这将解决你的新栏问题(从mql4.com上的一篇文章中得到的)。

bool funcIsNewBar()

{

bool res=false;

// the array contains open time of the current (zero) bar

// for 7 (seven) timeframes

static datetime _sTime[7];

int i=6;

int timeFrame = Period();

switch (timeFrame)

{

case 1 : i=0; break;

case 5 : i=2; break;

case 15 : i=3; break;

case 30 : i=4; break;

case 60 : i=5; break;

case 240: i=6; break;

case 1440:break;

default: timeFrame = 1440;

}

//----

if (_sTime==0 || _sTime!=iTime(Symbol(),timeFrame,0))

{

_sTime = iTime(Symbol(),timeFrame,0);

res=true;

}

//----

return(res);

}[/CODE]

Call this function like this

int start()

{

if (funcIsNewBar)

{

//run some code

}

return (0);

}

That'll get code to run ONLY when there is a new bar.

What you need to do is find out in the data window of MT4 what the values are when there is NO arrow being put on the chart by your indicator. For example, the indicator may may have 0's or may be blank.

So all you do then is call the value of the indicator at each open [CODE]varMyIndieValue=iCustom();

if (varMyIndieValue>0) //there's an arrow

{

//run some code

}
bdht:
嗨,大家好。

最近我想做一个简单的EA,可以在一个基于箭头的指标上工作。我试图使EA在任何时候都能维持一个订单。如果箭头指向下方,之前的买单被关闭,卖单被打开。如果箭头指向上方,之前的卖单被关闭,买单被打开。我正在使用测试器(可视化模式)来验证我的代码。似乎无论我如何尝试,当箭头指标指向上方或下方时,EA都不会关闭和打开头寸。后面的测试证实了该EA没有正常工作。EA没有在指标显示的箭头位置开仓和平仓,而是在一些不同的时间关闭/打开订单。我不明白为什么我的代码不工作。

在开始语句的开头,我有以下代码。

if (Time[0] == savedTime) {

返回(0)。

} else {

savedTime = Time [0];

}

这(我希望)将确保启动语句中的代码只在新的条形图形成时执行。后来在开始子程序的正文中,我用iCustom函数查询指标。该请求看起来如下。

iCustom (... 1)

最后一个参数1指定的是之前形成的条形,这就是为什么它不是0。但后来我用OrderClose关闭已开的订单,用OrderSend打开新的订单。我想,这两个函数必须能够即时执行。

底线是。我正试图创建一个基于箭头指标的EA。该指标要么向上,要么向下。在我看来(我可能是不正确的),我需要做的唯一一件事是关闭之前的订单,并在下一栏形成时打开新的订单。我将非常感谢对这个问题的任何意见。

谢谢大家。