新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 560

 
Artyom Trishkin:

问题是奇怪的答案很难被思想流鼓出来的东西不可能保持在思想流的丛林中,请...

那么你是用什么语言来交流的呢?

 
Alexey Viktorov:

你是用什么语言进行交流的?

用提问者理解的语言,我想:)
 

下午好,请告诉我在哪里可以得到一个免费的 交易假突破水平的SCRIPT?

 
barmaley1:

下午好,请告诉我在哪里可以得到一个免费的 交易假突破水平的SCRIPT?

脚本不会有帮助。

 

你好,伙计们,你们能不能给我一些建议?

每次我打开一个订单时,我需要记住已打开的订单的一些数据,以便以后处理它。

我想我需要把它全部保存在一个结构中。

- 入场价

- SL是否已被移至Breakeven

- 计算反转的峰值价格


每个tick 中,你需要对每个未结订单进行计算

请告知如何正确操作。

 
Decromor:

你好,伙计们,你们能不能给我一些建议?

每次我打开一个订单时,我需要记住已打开的订单的一些数据,以便以后处理它。

我想我需要把它全部保存在一个结构中。

- 入场价

- SL是否已被移至Breakeven

- 计算反转的峰值价格


每个tick 中,你需要对每个未结订单进行计算

请告知如何正确操作。

基本上,你自己已经描述过了)

在代码中,它将看起来如下

   for (int i = OrdersTotal() - 1; i >= 0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS))          
         continue;
         
      if (OrderSymbol() != Symbol())
         continue;  
      
      if (m_nMagicNumber != OrderMagicNumber()) 
         continue;

      if (OrderType() == OP_BUY)
         if (!SaveOrderInfo(m_stBuySeries))
            return false;

      if (OrderType() == OP_SELL)
         if (!SaveOrderInfo(m_stSellSeries))
            return false;
   }

m_nMagicNumber - 专家顾问的订单的ID。

m_stBuySeries和m_stSellSeries - 存储所有发现的指定类型订单数据的结构。例如,你可以用以下方式描述它们。

struct SeriesInfo
{
   int            nLastOrderTicket;                                                                // Тикет последнего открытого ордера
   int            nOrdersCnt;

   double         fSeriesTotalProfit;
   double         fVolumeSumm;
   double         fMinOrdersPrice;
   double         fMaxOrdersPrice;
   datetime       dtLastOrderTime;                                                                 // Время открытия последнего ордера
   OrderInfo      starrOrderInfo[];   
   
   bool           Init()
   {  
      nOrdersCnt = 0;
      nLastOrderTicket = 0;
      fSeriesTotalProfit = 0.0;
      fVolumeSumm = 0.0;
      fMinOrdersPrice = DBL_MAX;
      fMaxOrdersPrice = 0.0;
      dtLastOrderTime = 0;
      return ArrayResize(starrOrderInfo, 0, 100) == 0;
   }
};

对于这样的结构,SaveOrderInfo函数如下。

bool SaveOrderInfo(SeriesInfo &stSeriesInfo)
{
   // Проверка возможности добавления ордера в серию
   int nTotal = ArraySize(stSeriesInfo.starrOrderInfo);
   if (ArrayResize(stSeriesInfo.starrOrderInfo, nTotal + 1, 100) < 0)
   {
      Alert(MQLInfoString(MQL_PROGRAM_NAME), (TerminalInfoString(TERMINAL_LANGUAGE) == "Russian")? ": нехватка памяти для записи данных об очередном ордере. Эксперт отключен." : 
                                                                                                   ": unable to allocate the memory for next order. Expert is turned off.");
      return false;
   }
   
   // Запись ордера
   stSeriesInfo.starrOrderInfo[nTotal].nType = OrderType();
   stSeriesInfo.starrOrderInfo[nTotal].nTicket = OrderTicket();
   stSeriesInfo.starrOrderInfo[nTotal].fVolume = OrderLots();
   stSeriesInfo.starrOrderInfo[nTotal].fTP = OrderTakeProfit();
   stSeriesInfo.starrOrderInfo[nTotal].fSL = OrderStopLoss();
   stSeriesInfo.starrOrderInfo[nTotal].fOpenPrice = OrderOpenPrice();
   stSeriesInfo.starrOrderInfo[nTotal].fProfit = OrderProfit() + OrderSwap() + OrderCommission();
   stSeriesInfo.starrOrderInfo[nTotal].dtOpenTime = OrderOpenTime();
   
   stSeriesInfo.fSeriesTotalProfit += stSeriesInfo.starrOrderInfo[nTotal].fProfit;
   stSeriesInfo.fVolumeSumm += stSeriesInfo.starrOrderInfo[nTotal].fVolume;
   stSeriesInfo.fMinOrdersPrice = MathMin(stSeriesInfo.fMinOrdersPrice, OrderOpenPrice());
   stSeriesInfo.fMaxOrdersPrice = MathMax(stSeriesInfo.fMaxOrdersPrice, OrderOpenPrice());
   
   if (OrderOpenTime() > stSeriesInfo.dtLastOrderTime)
   {
      stSeriesInfo.dtLastOrderTime = OrderOpenTime();
      stSeriesInfo.nLastOrderTicket = OrderTicket();
   }
   
   return true;
}
[删除]  

稍微偏离主题。

https://www.finam.ru/profile/tovary/aluminum/export/?market=24

得到了该文件。

我正试图把它变成一个符号。

结果是令人失望的。

谢谢。

 
Ihor Herasko:

基本上,你已经自己描述了))。

在代码中,它将看起来如下。

m_nMagicNumber - 专家顾问的订单ID。

m_stBuySeries和m_stSellSeries - 存储所有发现的指定类型订单数据的结构。例如,你可以用以下方式描述它们。

这种结构的SaveOrderInfo函数如下。

非常感谢您提供如此详细的帮助!

 

下午好!

伙计们,你们能告诉我如何将一个EA链接到一个账户的代码吗(对于最新的更新)。

非常感谢你。

 
Aleksandr Lishchenko:

下午好!

伙计们,你们能告诉我如何将一个EA链接到一个账户的代码吗(对于最新的更新)。

非常感谢你。

简单。

if (AccountInfoInteger(ACCOUNT_LOGIN) != <номер счета>)
   return;