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

 
akarustam:

以下是在MT5中测试EA程序的奇迹(见图片文件)......在负余额的情况下可以有正的均衡性吗? 什么时候是负余额?在转向贸易国之前,我经常改变主意,还没来得及去做......我想现在是时候去睡觉了)

如果有人对开放代码和套装感兴趣,请告诉我。- 我一定会把它贴出来。我已经开始掌握MT5的对冲,现在,-奇迹,虽然)

没有奇迹。我有一个有大量盈余的未结头寸和一个损失超过我的余额的平仓头寸。我没有损失,因为我有足够的资金来维持一个开放的位置。
 
Artyom Trishkin:
没有奇迹。有大量盈余的敞口头寸,也有亏损大于资产负债表规模的平仓头寸。没有什么坏处,因为有足够的资金来维持未结头寸。
就是这么简单...谢谢你!
 

请你告诉我,我的错误是什么。

for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES)," PriceOpenSell[%d] = %G",i,PriceOpenSell[i]);

没有打印OpenSellTime数组中的日期,也没有打印表达式的第二部分 - PriceOpenSell。

而且,我找不到%G和%D这样的printf 命令。

 

大家下午好!)

这是给一个编程方面的傻瓜的问题...

我试图为一个新的版本编译一个EA,编译器给了我很多不同的错误...

这里是其中之一

如果(反对删除){删除( OP_SELLSTOP);删除( OP_SELLLIMIT);}。

在这段代码中,有2个标为红色的错误:'(' - 预期的对象指针

在阅读了一些关于错误的主题后,我明白这个名字是保留的,我必须替换它......。

所以问题是用什么来取代它?

 
Anton Razmyslov:

大家下午好!)

这是给一个编程方面的傻瓜的问题...

我试图为一个新的版本编译一个EA,编译器给了我很多不同的错误...

这里是其中之一

如果(反对删除){删除( OP_SELLSTOP);删除( OP_SELLLIMIT);}。

在这段代码中,有2个标为红色的错误:'(' - 预期的对象指针

在阅读了一些关于错误的主题后,我明白这个名字是保留的,我必须替换它......。

所以问题是用什么来取代它?

对你能想到的任何东西。例如_删除或删除_1294_765_1912或只删除拿破仑
 

在代码中,有这样一行

Print (";OpenSellTime - ",TimeToString(OpenSellTime[N_Sell],TIME_DATE|TIME_MINUTES), ";PriceOpenSell", PriceOpenSell[N_Sell]);

为什么我在输出中得到这个文本。

敞开式销售时间 - 2015.12.01 11:15

其中";"和第二部分是"PriceOpenSell"?

 
-Aleks-:

在代码中,有这样一行

Print (";OpenSellTime - ",TimeToString(OpenSellTime[N_Sell],TIME_DATE|TIME_MINUTES), ";PriceOpenSell", PriceOpenSell[N_Sell]);

为什么我在输出中得到这个文本。

敞开式销售时间 - 2015.12.01 11:15

哪里是";"和第二部分"PriceOpenSell"?

删除";"- 工作。

关于printf 的问题仍然存在...

 

如何正确地发送平仓 反击的请求?

如果我像以前一样关闭,相反的一个,它被漆上了))。

已经尝试了所有的方法,仍然出现错误 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [ Invalid request]

哪些字段要填,哪些不填?我想,开的头寸是短线还是长线并不重要。

//+------------------------------------------------------------------+
//| Закрытие  позиции по типу                                        |
//+------------------------------------------------------------------+
void PositionClose(double lot, int P_type,long id)
  {
Print("Вход в функцию Закрытие  позиции по типу !");
    ZeroMemory(mrequest); ZeroMemory(mresult);            // обнуляем значения mrequest, mresult

   //--- Получить текущее значение котировки в структуру типа MqlTick
   if(!SymbolInfoTick(_Symbol,latest_price))
     {
      Alert("Ошибка получения последних котировок - ошибка:",GetLastError(),"!!");
      return;
     }            
//--- формируем торговый запрос
      mrequest.action = TRADE_ACTION_CLOSE_BY;                                              // закрыть позицию встречной
      mrequest.order = id; 
//      mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
//      mrequest.price =  NormalizeDouble(latest_price.bid,_Digits);                      // последняя цена ask
//    mrequest.sl = 0;               // Stop Loss
//     mrequest.tp = 0;               // Take Profit
      mrequest.symbol = _Symbol;                        // символ
      mrequest.volume = lot;                            // количество лотов для торговли
 //     mrequest.magic = MAGIC;                               // Magic Number
      
//     if (P_type == 0) mrequest.type = ORDER_TYPE_SELL; // проверяем тип позиции
//     if (P_type == 1) mrequest.type = ORDER_TYPE_BUY;     
      mrequest.type = ORDER_TYPE_CLOSE_BY;
      mrequest.type_filling = ORDER_FILLING_FOK;        // тип исполнения ордера - все или ничего
      mrequest.deviation=10;                            // проскальзывание от текущей цены
                                        
            if( OrderSend(mrequest,mresult)>0)            // если значение отосланного ордера не ноль, то 
                  {  if(mresult.retcode==10009 || mresult.retcode==10008)
                     Print(" позиция  закрыта !");
                  } else {
                     Print(ResultRetcodeDescription(mresult.retcode));
                     return;
                         }
  }
 

你好,关于测试器的问题。

我正在测试一个多货币专家顾问,我想在显示器中看到正在交易的所有货币对的所有窗口。

在 "可视化软件 "的帮助中提到了在 "可视化软件 "主菜单的 "视图 "部分的 "图表 "命令,它似乎是用来打开新的图表的。但由于某些原因,我根本没有 "图表 "命令,因此,我无法打开 其他货币对的图表。这里的问题是什么?

 
Aleksandr Prishenko:

如何正确地发送平仓 反击的请求?

如果我像以前一样关闭,相反的一个,它被漆上了))。

已经尝试了所有的方法,仍然出现错误 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [ Invalid request]

哪些字段要填,哪些不填?据我所知,不管是多头还是空头,都无所谓。

使用最少的代码 - 使用标准库。

//+------------------------------------------------------------------+
//|                                                       TestEA.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"

#include <Trade\Trade.mqh>

CTrade my_trade;
ulong    result_deal_0  =0;
ulong    result_deal_1  =0;
bool     first_start    =false;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   first_start=false;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(!first_start)
     {
      my_trade.Sell(0.01);
      result_deal_0=my_trade.ResultDeal();
      Sleep(1000);

      my_trade.Buy(0.02);
      result_deal_1=my_trade.ResultDeal();
      Sleep(1000);

      if(result_deal_0!=0 && result_deal_1!=0)
         PositionCloseBy(result_deal_0,result_deal_1);

      first_start=true;
     }
  }
//+------------------------------------------------------------------+
//| Position Close By                                                |
//+------------------------------------------------------------------+
void PositionCloseBy(ulong ticket,ulong ticket_by)
  {
   my_trade.PositionCloseBy(result_deal_0,result_deal_1);
  }
//+------------------------------------------------------------------+

代理人日志。

ES      0       09:12:21.189    Trade   2016.04.14 00:00:30   instant sell 0.01 EURUSD at 1.12728 (1.12728 / 1.12736 / 1.12728)
IL      0       09:12:21.189    Trades  2016.04.14 00:00:30   deal #2  sell 0.01 EURUSD at 1.12728 done (based on order #2)
 OP      0       09:12:21.189    Trade   2016.04.14 00:00:30   deal performed [#2  sell 0.01 EURUSD at 1.12728]
NF      0       09:12:21.189    Trade   2016.04.14 00:00:30   order performed sell 0.01 at 1.12728 [#2  sell 0.01 EURUSD at 1.12728]
GJ      0       09:12:21.192    TestEA (EURUSD,H1)      2016.04.14 00:00:30   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.12728 [done at 1.12728]
KH      0       09:12:21.192    Trade   2016.04.14 00:00:31   instant buy 0.02 EURUSD at 1.12736 (1.12728 / 1.12736 / 1.12728)
OD      0       09:12:21.192    Trades  2016.04.14 00:00:31   deal #3  buy 0.02 EURUSD at 1.12736 done (based on order #3)
 GI      0       09:12:21.193    Trade   2016.04.14 00:00:31   deal performed [#3  buy 0.02 EURUSD at 1.12736]
LM      0       09:12:21.193    Trade   2016.04.14 00:00:31   order performed buy 0.02 at 1.12736 [#3  buy 0.02 EURUSD at 1.12736]
NS      0       09:12:21.193    TestEA (EURUSD,H1)      2016.04.14 00:00:31   CTrade::OrderSend: instant buy 0.02 EURUSD at 1.12736 [done at 1.12736]
OP      0       09:12:21.193    TestEA (EURUSD,H1)      2016.04.14 00:00:32   Вход в функцию Закрытие  позиции по типу !
GI      0       09:12:21.193    Trade   2016.04.14 00:00:32   close position #2  sell 0.01 EURUSD by position #3  buy 0.02 EURUSD (1.12728 / 1.12736 / 1.12728)
OM      0       09:12:21.193    Trades  2016.04.14 00:00:32   deal #4  buy 0.01 EURUSD at 1.12736 done (based on order #4)
 RK      0       09:12:21.193    Trades  2016.04.14 00:00:32   deal #5  sell 0.01 EURUSD at 1.12728 done (based on order #4)
 EF      0       09:12:21.193    TestEA (EURUSD,H1)      2016.04.14 00:00:32   CTrade::OrderSend: unknown action 10 [done]
EI      0       09:12:21.423    Trade   2016.04.14 23:59:59   position closed due end of test at 1.12663 [#3  buy 0.01 EURUSD 1.12736]
JG      0       09:12:21.423    Trades  2016.04.14 23:59:59   deal #6  sell 0.01 EURUSD at 1.12663 done (based on order #5)
 HN      0       09:12:21.423    Trade   2016.04.14 23:59:59   deal performed [#6  sell 0.01 EURUSD at 1.12663]
IS      0       09:12:21.423    Trade   2016.04.14 23:59:59   order performed sell 0.01 at 1.12663 [#5  sell 0.01 EURUSD at 1.12663]
原因: