Мне нужно передавать из одного терминала МТ5 в другой, количество открытых позиций. На пример, из первого при помощи индикаторa.

Trabalho concluído

Tempo de execução 1 dia
Comentário do cliente
Alles TipTop
Comentário do desenvolvedor
Всё прошло успешно! Я рад сотрудничеству!

Termos de Referência

Мне нужно передавать из одного терминала МТ5 в другой, количество открытых позиций.
На пример, из первого при помощи индикаторы, через файл, и потом во втором терминале, функцией блоком в советнике, читать эти данные.

Привожу пример индикатора. Задача или исправить этот индикатор, или предлагать другой и другие решения. Спасибо.

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//----- Indicator Parameters
//+------------------------------------------------------------------+
input string SubFolder = "MetaTrader 5";
//+------------------------------------------------------------------+
int Handle;
//---
int BearPositions;
int BullPositions;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit() {return(0);}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  Comment("");
  Handle=FileOpen(SubFolder+"\\MQL5\\Files\\"+Symbol()+".csv",FILE_WRITE);
  Print(Symbol()+".csv"+" File Created: ",(bool)FileIsExist(SubFolder+"\\MQL5\\Files\\"+Symbol()+".csv"));
  FileClose(Handle);
  Print(Symbol()+".csv"+" File Deleted: ",(bool) FileDelete(SubFolder+"\\MQL5\\Files\\"+Symbol()+".csv"));
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,    // number of bars in history at the current tick
                const int prev_calculated,// number of bars calculated at previous call
                const datetime &time[],
                const double &open[],
                const double& high[],     // price array of maximums of price for the indicator calculation
                const double& low[],      // price array of minimums of price for the indicator calculation
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
//-----
  TotalPositions();
//-----
  Handle=FileOpen(SubFolder+"\\MQL5\\Files\\"+Symbol()+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,';');
  if(Handle!=INVALID_HANDLE)
  {
    FileWrite(Handle,BullPositions,BearPositions);
    FileClose(Handle);
    Comment("\n","\n","\n","\n","\n","\n","\n","\n","\n","\n",Symbol(),": ","Bull: ",(string)BullPositions,", Bear: ",(string)BearPositions);  
    //"\n","Ask: ",NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_ASK),_Digits),
    //"\n","Bid : ",NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_BID),_Digits));
  }
//-----
  else Print("File open Failed: "+SubFolder+"\\"+Symbol()+".csv, error",GetLastError());
//----- Done 
  return(rates_total);
}
//+------------------------------------------------------------------+
//| Bear Positions Counter                                           |
//+------------------------------------------------------------------+
void TotalPositions()
{
//-----
  int Cnt=0;
//-----
  BearPositions=0; BullPositions = 0;
//-----
  for(Cnt=PositionsTotal()-1;Cnt>=0;Cnt--)
  {
    if(PositionGetSymbol(Cnt)==_Symbol)
    {
       if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL && PositionGetDouble(POSITION_SL) == NULL)  BearPositions++;
       if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY  && PositionGetDouble(POSITION_SL) == NULL)  BullPositions++;
    }
  }
  return;
}
//+------------------------------------------------------------------+


Respondido

1
Desenvolvedor 1
Classificação
(68)
Projetos
78
27%
Arbitragem
13
31% / 54%
Expirado
15
19%
Trabalhando
2
Desenvolvedor 2
Classificação
(31)
Projetos
51
33%
Arbitragem
0
Expirado
0
Livre
3
Desenvolvedor 3
Classificação
(338)
Projetos
398
34%
Arbitragem
2
100% / 0%
Expirado
0
Livre
4
Desenvolvedor 4
Classificação
(79)
Projetos
146
28%
Arbitragem
1
100% / 0%
Expirado
27
18%
Livre
5
Desenvolvedor 5
Classificação
(132)
Projetos
170
18%
Arbitragem
17
47% / 18%
Expirado
0
Trabalhando
6
Desenvolvedor 6
Classificação
(1)
Projetos
1
0%
Arbitragem
0
Expirado
0
Livre
7
Desenvolvedor 7
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
8
Desenvolvedor 8
Classificação
(356)
Projetos
632
26%
Arbitragem
89
73% / 13%
Expirado
12
2%
Livre
Pedidos semelhantes
dify indicator MA_Cloud for mt4 and mt5, give source code with comments 1)Need to change alerts and arrows for cross price only true 2 MA without crossing (direction from small to big) 2)Fix the error when change to any timeframe for MA (disapeer) and for arrows (in history is very big on vertically out of see screenshot) 3)Add alerts for crossing of 2 MA (MA Small cross MA big) Arrows, Message, Sound - (True/False)
Изменить графический интерфейс утилиты, исправить расположение кнопок, изменить вид некоторых окон и добавить новые. Сохранить текущую адаптивность и работоспособность кнопок. Подробнее расскажу в ТЗ с наглядными скриншотами, что и где поменять. Правки нужно внести в МТ4 и МТ5 версии. Спасибо за ваши заявки, рассмотрю каждую
Мне нужен робот, который будет иметь следующие необходимые параметры: 1. робот должен работать на MT5 2. минимальный депозит $100 3. количество транзакций в день на депозит $100 с лотом 0,01 минимум 1000 4. макс прасат 15%
написать индикатор распознования флета. выявления флета из трёх частей проверки. в каждой части свой расчёт, по барам, по количеству поинтов, по ширине (высоте) баров, по минимальным значениям... когда все расчеты сошлись и не вышли из пропорций, тогда рисуется флет. Задание готово, отправлю подходящему кандидату. передача оплаты, когда индикатор будет работать без проблем, по всем параметрам расчетов. возможны не
Добрый день! Требуется выполнить следующую задачу: 1. для стандартного индикатора зигзаг 2. задаются стандартные настройки 3. задается тестовый период, валютная пара, таймфрейм 4. выгружается файл CVS или эксель с данными о зафиксированных пиках зигзага (НЕ ПРОМЕЖУТОЧНЫХ / ТЕКУЩИХ / ФОРМИРУЮЩИХСЯ, а именно о конечных пиках) 5. для каждого пика фиксируются
был старый работоспособный скрипт на очень старом МТ4... есть необходимость переписать его на MQL5, чтобы проверить теоретическую работоспособность в современном мире описание вроде бы где-то сохранилось кто-нибудь сможет помочь с этим вопросом и за какие деньги
стратегий в одном терминале может быть много нужен ММ для (баланс - сумма всех рисков) //Maximum amount of money to risk double moneyToRisk = NormalizeDouble( (AccountBalance() - Total_Current_Risk() )* RiskInPercent / 100, 7); Total_Current_Risk() { calculates all potential losses of all opened and all pending orders + all swaps + all commissions return (Total_Current_Amount_At_Risk) } double
I am looking to enhance the profitability of my current Expert Advisor (EA) using a Martingale approach with a CCI Indicator (the code is approximately 1200 lines currently) and would like to implement several key improvements. Below, I have detailed the areas where I believe the EA can be optimized and made more effective and i have provided the code in a .txt file: Note: I would like to run this EA most preferably

Informações sobre o projeto

Orçamento
34+ USD
Desenvolvedor
30.6 USD
Prazo
para 8 dias