程序库: MT4Orders - 页 25

 

关于交易、自动交易系统和测试交易策略的论坛

图书馆:MT4Orders

fxsaber, 2017.06.14 11:30 AM.

// 更改列表:
// 14.06.2017:
// 添加:已添加 MQL4 交易函数的异步类似函数:OrderSendAsync, OrderModifyAsync, OrderCloseAsync, OrderDeleteAsync.
// 如果成功,则返回相应的 Result.request_id,否则返回 0。

使用这些函数的一个很好的例子是对另一个库的描述。所示方法允许在异步模式下充分利用 MQL4-style(包括停留在其 On 函数中的能力)。

TradeTransactions
TradeTransactions
  • www.mql5.com
Асинхронные торговые приказы обладают огромным преимуществом - высокая скорость при массовой отправке. Однако, распространению таких приказов мешает некоторое неудобство - данные о результате приказа возможно увидеть только в OnTradeTransaction. Такое обстоятельство заставляет обывателя строить событийную модель своей ТС, если хочется...
 

关于交易、自动交易系统和交易策略测试的论坛

图书馆:符号

fxsaber, 2018.09.11 15:58

// 通过限价订单平仓
bool CloseAll()
{
  bool Res = true;
  
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS))
      Res &= (OrderType() > OP_SELL) ? OrderDelete(OrderTicket())
                                     : OrderSend(OrderSymbol(), OrderType() ? OP_BUYLIMIT : OP_SELLLIMIT , OrderLots(), OrderClosePrice(), 100, 0, 0) && false;
    
  return(Res);
}

与 SB 一样

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>

bool CloseAll()
{
  static CTrade Trade;
  static CPositionInfo Position;
  
  bool Res = true;
  
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    Res &= Trade.OrderDelete(OrderGetTicket(i));
    
  for (int i = PositionsTotal() - 1; i >= 0; i--)
    if (Position.SelectByIndex(i))    
      Res &= (Position.PositionType() ?  Trade.BuyLimit(Position.Volume(), Position.PriceCurrent(), Position.Symbol())
                                      : Trade.SellLimit(Position.Volume(), Position.PriceCurrent(), Position.Symbol())) && false;
    
  return(Res);
}


每种风格都有自己的优点和缺点。

 

您可以通过该顾问 查看图书馆。

 
TesterEA
TesterEA
  • www.mql5.com
Некоторый выложенный в Кодобазу инструментарий требовал для различных тестов торговый советник в качестве полигона. Данный советник был тем самым подопытным. От идеи до полной реализации, с написанием всего кода с нуля, потребовалось два часа. Особенности Советник канальный - торгует вовнутрь канала, постоянно в рынке.Не используются...
 
// 更改列表:
// 02.11.2018
// 修复:MT4 仓位触发前的开仓价格现在不能为零。
// 修正:考虑到某些交易服务器执行的罕见特殊性。
 
fxsaber:

第一段不清楚。过去如何,现在又如何?

 
Stanislav Korotky:

第一段不清楚。过去如何,现在又如何?

下达了建立头寸的 市场订单。虽然没有执行,但程序库将其视为 MT4 仓位。以前,该 "头寸 "的 OrderOpenPrice() 等于零。现在则等于当前价格。

ForexTimeFXTM-Demo01 上运行此智能交易系统
#include <MT4Orders.mqh>
#include <Debug.mqh> // https://c.mql5.com/3/173/Debug.mqh

const bool Init = EventSetMillisecondTimer(1);

void OnTimer()
{
  static ulong PrevTimeMsc = 0;
  
  if (OrderSelect(0, SELECT_BY_POS))
  {
    const ulong TimeMsc = OrderOpenTimeMsc();
    
    if (PrevTimeMsc != TimeMsc)
    {
      Print(TimeToString(TimeMsc / 1000, TIME_SECONDS) + "." + IntegerToString(TimeMsc % 1000, 3, '0'));
      _P(OrderOpenPrice());
      _P(OrderClosePrice());
      
      OrderPrint();
    }
    
    PrevTimeMsc = TimeMsc;
  }    
}


并手动建仓。智能交易系统将打印出

2018.11.02 16:04:51.280 16:04:58.039
2018.11.02 16:04:51.280 void OnTimer(), Line = 17: OrderOpenPrice() = 1.14187
2018.11.02 16:04:51.280 void OnTimer(), Line = 18: OrderClosePrice() = 1.14187
2018.11.02 16:04:51.280 #2212865052 2018.11.02 16:04:58 sell 1.00 EURUSD 1.14187 0.00000 0.00000 1.14187 0.00 0.00 0.00 0
2018.11.02 16:04:51.440 16:04:58.151
2018.11.02 16:04:51.440 void OnTimer(), Line = 17: OrderOpenPrice() = 1.14187
2018.11.02 16:04:51.440 void OnTimer(), Line = 18: OrderClosePrice() = 1.1419
2018.11.02 16:04:51.440 #2212865052 2018.11.02 16:04:58 sell 1.00 EURUSD 1.14187 0.00000 0.00000 1.14190 -1.75 0.00 -2.63 0


之前高亮显示的位置为零。


记录终端本身的这种情况

2018.11.02 16:04:51.200 Trades  '35269132': market sell 1.00 EURUSD
2018.11.02 16:04:51.260 Trades  '35269132': accepted market sell 1.00 EURUSD
2018.11.02 16:04:51.270 Trades  '35269132': market sell 1.00 EURUSD placed for execution
2018.11.02 16:04:51.380 Trades  '35269132': order #2212865052 sell 1.00 / 1.00 EURUSD at market done in 181.043 ms
2018.11.02 16:04:51.380 Trades  '35269132': deal #2210313578 sell 1.00 EURUSD at 1.14187 done (based on order #2212865052)
 

@fxsaber

您能举例说明如何让这个 mt5 EA 在 mt4orders 上运行吗?

https://www.mql5.com/zh/code/17464

5_8 MACross
5_8 MACross
  • www.mql5.com
Kijun Sen Robot Использует индикаторы: Ichimoku, MA, SAR. Оптимизирован для валютных пар: GBPUSD и EURUSD c периодом M30. Полное описание см. в коде. TDI-2_Cloud_HTF Индикатор TDI-2 с возможностью изменения таймфрейма индикатора во входных параметрах.
 
ilvic:

您能举例说明如何让这个 mt5 EA 在 mt4orders 上运行吗?

https://www.mql5.com/zh/code/17464

此 MT4 EA 已移植到 MT5 风格,现在您想将其移植回去。

当然可以做到。但不幸的是,没有我。

 
fxsaber:

此 MT4 EA 已移植到 MT5 风格,现在您想将其移植回去。

当然可以。但不幸的是,没有我。

能给我一个 MT4 版本的例子吗?

https://www.mql5.com/zh/code/7712

和你用 Spreader 所做的类似。

// 这是一个 MT5 顾问,可让您运行相应的
// MT4-advisor 在 MT5(套期保值)多货币测试仪中(使用真实刻度线)

//https://www.mql5.com/zh/code/16006
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>

//#include "Spreader_v1.mq4" //https://www.mql5.com/zh/code/9484
#include "Spreader_v2.mq4" //https://www.mql5.com/zh/code/9495

void OnTick()
{
  start();
}
5_8 MACross
5_8 MACross
  • www.mql5.com
Bad Orders Советник BadOrders. Простенький советник. Breadandbutter2 Советник breadandbutter2. Опирается на индикаторы ADX и MA. 1h-4h-1d Советник 1h-4h-1d. Опирается на...