标签: mql4

How can I cancel a trade when another is open and keep the open trade for a given duration?

I have written the code below that opens a buy and sell trade (a certain number of pips above and below the ask and bid price) at a specific time.

  1. How can I close/cancel one immediately when the other is opened?

  2. 如果说获利X点或在一分钟后(取决于先达到哪种条件),如何关闭未平仓交易?

我不太确定自己在下面的代码中做了正确的事情,非常感谢您的帮助。

double spread = Ask-Bid;
extern datetime time;
extern int pipGap = 7;
extern int lotSize = 0.01;
extern int closeTimeInSeconds = 60;


int start() {
  if (TimeCurrent() >= StrToTime(time)){

    OrderSend(Symbol(),OP_BUYSTOP,lotSize, Ask + Point*pipGap, 0,0,0);
    OrderSend(Symbol(),OP_SELLSTOP,lotSize, Bid - …
Run Code Online (Sandbox Code Playgroud)

metatrader4 mql4

15
推荐指数
1
解决办法
448
查看次数

如何编写用矩形标记列出的蜡烛图案的mql4代码(EA)

我是编写mql4代码的新手,如果在以下烛台图案出现时能获得一些绘制矩形的帮助,将不胜感激:

图。1:

图片取自https://imgur.com/a/fRoPzsm

Run code snippet

<blockquote class="imgur-embed-pub" lang="en" data-id="a/fRoPzsm"><a href="//imgur.com/a/fRoPzsm">Demand Zone 1</a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)

图2:

图片取自https://imgur.com/a/4E8KE1R

Run code snippet

<blockquote class="imgur-embed-pub" lang="en" data-id="a/4E8KE1R" data-context="false"><a href="//imgur.com/a/4E8KE1R">Demand Zone 2</a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)

图3:

图片取自https://imgur.com/a/h6D6o6R

Run code snippet

<blockquote class="imgur-embed-pub" lang="en" data-id="a/h6D6o6R"><a href="//imgur.com/a/h6D6o6R">Hidden Demand Zone</a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)

和相应的供应区域,
并以指定的点数止损和止盈开立挂单。

请原谅我不直接包含图像。我没有足够的投票赞成这样做。

以下是链接图像中烛台图案的说明:

需求区

candlestick pattern当出现至少两个或多个连续的看涨蜡烛(最后一个看涨蜡烛的高点为该时间段的高点),然后跟随一个或多个看跌蜡烛的高低比最后一个看涨蜡烛的低点时,将发生一般(需求区域) 。然后最后是形成新高的看涨蜡烛。矩形区域是需求区域,从最后一个看跌蜡烛的开盘价到最低价截取。

隐藏需求区

当一系列连续的看涨蜡烛的蜡烛的低位,低于前一根蜡烛以及其高位和其收盘价重合时,隐藏的需求区域将从看涨蜡烛的低位转向开盘。

此处提供针对需求区域和供应区域的完整说明。

我知道,bullishbearish蜡烛可由下式确定


    if ( ( Open[1] - Close[1] ) > 0)
    {
      // candle is bearish
    } …
Run Code Online (Sandbox Code Playgroud)

mt4 metatrader4 mql4

14
推荐指数
1
解决办法
490
查看次数

我可以在MetaTrader4上使用MQL4以外的语言吗?

我的任务是将C#市场策略迁移到MetaTrader.

  1. 有没有办法自动完成这项工作?(例如,是否可以将C#解析为它的AST,然后进行翻译?)

  2. MetaTrader是否接受其他语言?

c# metatrader4 mql4

7
推荐指数
1
解决办法
4920
查看次数

MetaTrader的异步Web请求

我试图看看是否可以为MetaTrader构建一个可以发出异步互联网请求的自定义指标,以便将数据发布到带有PHP接口的服务器上.

这些请求可能需要一些时间才能处理Web服务器,因此我担心如果以同步方式执行这些请求,它们将阻止指示器不断更新新的tick数据.

MT4是否有可用的异步库?

algorithmic-trading metatrader4 mql4

7
推荐指数
1
解决办法
3566
查看次数

如何将Metatrader 4警报或电子邮件指示信号转换为EA交易以开启交易?

我一直在使用指标来进行交易.我没有开发指标,所以我只能访问该.ex4文件.如何在警报或电子邮件信号中提取止盈,开放交易和止损值以开启交易?请参阅下面的电子邮件和警报信号示例.

在此输入图像描述

在此输入图像描述

algorithmic-trading metatrader4 mql4

7
推荐指数
1
解决办法
2039
查看次数

随着利润增加,如何在止损和当前价格之间保持10点的利润差距

我想另一个条件添加到该解决方案在这个岗位。我希望当交易获利10点时,止损将增加10点。更具体地说,假设我已经设置了一个待处理的买单,止损位比开盘价低10点,止盈位为50点。如果交易获利10个点,那么止损将向上移动10个点,如果交易获利为20个点,则止损将向上移动另一个10个点,而当交易获利30和40个点时,同样会发生直到达到50点止盈为止。这里的想法是,止损会增加10个点,而利润会增加10个点,但是止损不会下降。因此,如果止损为获利10个点,而价格为获利23个点并且突然下降,它将以10个止损获利退出交易。

设置以上条件对我来说似乎很复杂。我还没完成。

以下是我要解决的代码的相关部分(请注意,其余代码与上述链接的问题解决方案相同)。

//=========================================================
    //CLOSE EXPIRED STOP/EXECUTED ORDERS
    //---------------------------------------------------------
    for( int i=OrdersTotal()-1; i>=0; i-- ) {
        if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES ))
            if( OrderSymbol() == Symbol() )
                if( OrderMagicNumber() == viMagicId) {
                    if( (OrderType() == OP_BUYSTOP) || (OrderType() == OP_SELLSTOP) )
                        if((TimeCurrent()-OrderOpenTime()) >= viDeleteStopOrderAfterInSec)
                            OrderDelete(OrderTicket());

                    if( (OrderType() == OP_BUY) || (OrderType() == OP_SELL) )
                        if((TimeCurrent()-OrderOpenTime()) >= viDeleteOpenOrderAfterInSec) {
                            // For executed orders, need to close them
                            double closePrice = 0;
                            RefreshRates();
                            if(OrderType() == OP_BUY)
                                closePrice  = Bid;
                            if(OrderType() == …
Run Code Online (Sandbox Code Playgroud)

trading algorithmic-trading metatrader4 mql4

7
推荐指数
1
解决办法
267
查看次数

iMA()函数的移位参数是什么意思?

有人可以解释一下shift这个iMA函数的两个参数之间的区别是什么?
根据MQL4文件:

ma_shift - 移动平均移动.指标线偏移与时间范围的图表相关.

shift - 从指标缓冲区获取的值的索引(相对于当前条的转移给定的前期数)

标准MA指标采用哪些参数?

mql4

6
推荐指数
1
解决办法
2万
查看次数

MQL4 中的异常处理

Java语言中,可以使用try-catch机制。

它是否存在任何类似的行为 MQL4

此代码引发错误'array out of rangeClose[bar]表达式中 ” ,我无法正确处理它。

任何帮助将不胜感激。

bool isBarClosed( int bar ) {
    bool   barClosed  = true;
    double closePrice = Close[bar];
    int    error      = GetLastError();

    if ( error == 4202 ) {
        barClosed = false;
    }   
    return barClosed;
}
Run Code Online (Sandbox Code Playgroud)

algorithmic-trading mt4 metatrader4 mql4

5
推荐指数
1
解决办法
5065
查看次数

如何反编译一个ex4文件new build 600+

如果您不知道,ex4 文件是用 MQL 语言(自动交易机器人)创建的文件。

有一个反编译器可以反编译此类文件的旧版本,但是在版本 600 之后没有反编译器。

我有需要反编译的有价值的 EA(外汇机器人)。你能帮我吗?

robot forex mql4 mql5

5
推荐指数
1
解决办法
1万
查看次数

在 MetaTrader4 EA 的 OrderSend() 中设置止损和止盈的正确方法是什么?

我试图找出在 MQL4 (Metatrader4) 中在Expert Advisor 中发送订单时是否有正确的方法来设置止损(SL) 和获利 (TP) 水平。功能模板是:

OrderSend( symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color);

因此,我很自然地尝试执行以下操作:

double dSL = Point*MM_SL;
double dTP = Point*MM_TP;

if (buy)  { cmd = OP_BUY;  price = Ask; SL = ND(Bid - dSL);  TP = ND(Ask + dTP); }
if (sell) { cmd = OP_SELL; price = Bid; SL = ND(Ask + dSL);  TP = ND(Bid - dTP); }

ticket = OrderSend(SYM, cmd, …
Run Code Online (Sandbox Code Playgroud)

algorithmic-trading metatrader4 mql4

5
推荐指数
1
解决办法
7129
查看次数

标签 统计

mql4 ×10

metatrader4 ×8

algorithmic-trading ×5

mt4 ×2

c# ×1

forex ×1

mql5 ×1

robot ×1

trading ×1