初学者的问题 MQL5 MT5 MetaTrader 5 - 页 72

 

莱斯特
这是一个内置功能的模板,用于打开、关闭和修改。
开场和结尾是由尼古拉-科西津写的。

我很容易就改变了它们,并增加了修改内容。

我想如何调用他们是很清楚的,所以为了你的方便。

很抱歉--混淆了文件

Документация по MQL5: Файловые операции / FileMove
Документация по MQL5: Файловые операции / FileMove
  • www.mql5.com
Файловые операции / FileMove - Документация по MQL5
附加的文件:
schablon_1.mq5  13 kb
 
papaklass:

这样试试吧。

不幸的是,订单根本就没有关闭。 我想我应该考虑一下)
 
mario065:

莱斯特
这个模板有内置的打开、关闭和修改的功能。
开场和结尾是由尼古拉-科西津写的。

我很容易就改变了它们,并增加了修改内容。

我想如何挑战他们是很清楚的,所以为了你的方便。

我如何用编辑器打开这样的文件?
 
Lester:
你如何用编辑器打开这样的文件?

你不能打开这些。))

尝试阅读一些文章。有很多选择,从最小的到最成熟的。))

 
Lester:
不幸的是,订单根本没有关闭。 我想我应该考虑一下)

更改了文件,对此表示抱歉。

我把文件弄混了,对不起。

 
papaklass:

哇哦。这与认股权证有什么关系?我们一直都在谈论这个位置。仓位和挂单是不同的东西。它们必须以不同的方式关闭!

待处理的订单不是关闭而是删除。仓位的平仓方式是开出与开仓 数量相等、方向 相反的市场订单。

你引用的代码并不是为了删除挂单而设计的。

您可以使用这个功能来删除订单。


明白了。没有关于订单的内容--只是立场。

我在晚上给PositionSelect开了药--它似乎已经让我喘过气来。它每隔一段时间就会发送(关闭)仓位,但我认为这里已经涉及到条件。

我不明白别的东西。它不形成止损和盈利损失,其值在输入参数中规定。如果我在发送中规定这些值,也会发生同样的事情--即什么都没有。

input int StopLoss=60;      // Stop Loss
input int TakeProfit=170;   // Take Profit
int OnInit()
 ...
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }
   return(0);
  }
...
 mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
         mrequest.price = NormalizeDouble(Ask,_Digits);    // последняя цена ask
         mrequest.sl = StopLoss; // Stop Loss
         mrequest.tp = TakeProfit; // Take Profit
         mrequest.symbol = _Symbol;                                            // символ
         mrequest.volume = Lot;                                                // количество лотов для торговли
         mrequest.magic = EA_Magic;                                            // Magic Number
         mrequest.type = ORDER_TYPE_BUY;                                       // ордер на покупку
         mrequest.type_filling = ORDER_FILLING_FOK;                            // тип исполнения ордера - все или ничего
         mrequest.deviation=10;                                               // проскальзывание от текущей цены
         //--- отсылаем ордер
         OrderSend(mrequest,mresult);
         // анализируем код возврата торгового сервера
         if(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен
           {
            Alert("Ордер Buy успешно помещен, тикет ордера #:",mresult.order,"!!");
           }
         else
           {
            Alert("Запрос на установку ордера Buy не выполнен - код ошибки:",GetLastError());
            return;

 

你好。你能告诉我,在订阅信号后,我应该在MT4中做什么,这样才能实现同步?我在说明中找到了MT5的操作方法,我没有找到关于MT4的说明。我已经订阅 了MT4的信号

我已经注册了MT4的信号,谢谢你。

Торговые сигналы
Торговые сигналы
  • www.mql5.com
Торговые Сигналы для MetaTrader: копирование сделок, мониторинг счета, автоматическое исполнение сигналов и социальный трейдинг
 
Lester:

明白了。没有提到订单--只是立场。

我在晚上开了PositionSelect - 似乎可以呼吸。它每隔一段时间就会发送(关闭)头寸,但我认为这里已经涉及到条件。

我不明白别的东西。它不形成止损和盈亏,其值在输入参数中规定。如果我在发送中规定这些值,也会发生同样的事情--即什么都没有。

没有正确指定止损点和利润。
Здес указали целое число
input int StopLoss=60;      // Stop Loss
input int TakeProfit=170;   // Take Profit

...
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }
   return(0);
  }
...

mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
         mrequest.price = NormalizeDouble(Ask,_Digits);    // последняя цена ask
         mrequest.sl = NormalizeDouble(Ask - StopLoss*_Points,_Digits); // Stop Loss
         mrequest.tp = NormalizeDouble(Ask + TakeProfit*_Points,_Digits);  // Take Profit

На места для стоп и профит нужна цена!
 
papaklass:

开仓时不设置止损的原因可能取决于交易模式。有三种模式: 请求执行 即时执行 市场执行

如果你的经纪人使用市场执行 模式,你需要先开仓,然后在下一个tick上修改(设置止损)。同时,即在一个订单中,在这种交易模式下,不可能开出带止损的头寸。

一般来说,请看一下交易请求的结构:MQL5参考/ 标准常数、枚举和结构/ 数据结构/ 交易请求的结构。我认为这将有助于你进一步学习语言。

的确,在Alpari有市场执行力。 是否有一个订单修改结构本身?因为只要有一个开放的卖出或买入订单,论坛中就没有修改。

如果我没有弄错的话,修改的 "鱼 "是这样的。

if(PositionSelect(_Symbol)==true) // есть открытая позиция
     {
      if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
        { ModifyPosition(стоплосс на покупку)
        }
      else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
        {
         { ModifyPosition(стоплосс на продажу)
        }
return


 
Lester:
事实上,在Alpari市场执行 中。是否有一个订单修改结构本身?因为只要有一个开放的卖出或买入订单,论坛中就没有修改。

如果我没有弄错的话,修改后的 "鱼 "看起来是这样的。

使用标准库中的现成解决方案(CTrade类--PositionModify 方法)。这是一个很好的解决方案,是一个开始。在任何时候,你都可以制作自己的类似类,并进行必要的修改。