Лента последних комментариев


0
спасибо за ваш труд меня вполне устроил результат
avatar

bosjakin

  • 29 апреля 2026, 22:41
0
выше глянь код
avatar

igrun

  • 28 апреля 2026, 01:40
0
вот сова мт5
avatar

igrun

  • 28 апреля 2026, 01:39
0
Ребят спасибо что подсказали.
Раньше не верил в Яндекс. Загрузил все в Алису. Работает как доктор прописал.
avatar

AVPetrovich

  • 27 апреля 2026, 23:05
0
ты уж постарайся — я в боты не верю
avatar

igrun

  • 27 апреля 2026, 22:19
0
Сделаю работу, советник будет работать корректно стоимость работы 1000 руб.
Да?
Так кто ни будь возьмётся?
avatar

AVPetrovich

  • 27 апреля 2026, 22:15
0
за услугу приграммирования как правило почесовка
avatar

igrun

  • 27 апреля 2026, 22:11
0
Вы хотите в долг? Или просто спрашиваете где может быть?
avatar

AVPetrovich

  • 27 апреля 2026, 22:02
0
тыщенки нет ни гда
avatar

igrun

  • 27 апреля 2026, 21:59
0
найдите покупателей хочу больше программировать за деньги
avatar

igrun

  • 27 апреля 2026, 21:47
0
не запускается
avatar

AVPetrovich

  • 27 апреля 2026, 19:55
0
Этот советник задуман как эксперт для торговли коррелирующими между собой валютами,
поэтому открывает сразу две сделки по указанным валютам, а дальше если совокупный профит достигнет указанного профита закроет сразу обе сделки по обеим валютам
avatar

alex30774

  • 27 апреля 2026, 18:48
0
закинь 1000 рублей на карту
avatar

igrun

  • 27 апреля 2026, 18:15
0
//+------------------------------------------------------------------+
//| Multik.mq5 |
//| Copyright 2024, AM2. |
//| www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright «Copyright 2024, AM2.»
#property link «www.forexsystems.biz»
#property version «1.00»

#include <Trade\Trade.mqh> // Подключаем торговый класс CTrade
CTrade trade; // Используем торговый класс CTrade

//--- входные параметры группы 1
input double Lot = 0.3; // лот
input double Profit = 11; // Профит в валюте

input string Symb1 = «EURUSD»; // 1-й символ
input string Symb2 = «GBPUSD»; // 2-й символ
input int Slip = 30; // Проскальзывание

input bool Buy = 1; // покупки
input bool Sell = 1; // продажи

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
if(Buy==false && Sell==false)
{
Print(«Ошибка: Запрещены и покупки, и продажи!»);
return(INIT_FAILED);
}
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CloseAll(int type=-1)
{
for(int i=PositionsTotal()-1; i>=0; i--)
{
if(PositionSelectByTicket(PositionGetTicket(i)))
{
if(PositionGetInteger(POSITION_TYPE)==0 && type==0)
{
trade.PositionClose(PositionGetTicket(i),Slip);
}

if(PositionGetInteger(POSITION_TYPE)==1 && type==1)
{
trade.PositionClose(PositionGetTicket(i),Slip);
}

if(type==-1)
{
trade.PositionClose(PositionGetTicket(i),Slip);
}
}
}
}
//+------------------------------------------------------------------+
//| Position Profit |
//+------------------------------------------------------------------+
double AllProfit(int type=-1)
{
double p=0;

for(int i=PositionsTotal()-1; i>=0; i--)
{
if(PositionSelectByTicket(PositionGetTicket(i)))
{
if(PositionGetInteger(POSITION_TYPE)==0 && type==0)
{
p+=PositionGetDouble(POSITION_PROFIT)+PositionGetDouble(POSITION_SWAP);
}

if(PositionGetInteger(POSITION_TYPE)==1 && type==1)
{
p+=PositionGetDouble(POSITION_PROFIT)+PositionGetDouble(POSITION_SWAP);
}

if(type==-1)
{
p+=PositionGetDouble(POSITION_PROFIT)+PositionGetDouble(POSITION_SWAP);
}
}
}

return(p);
}
//+------------------------------------------------------------------+
//| Функция проверки, есть ли открытые позиции по нашим символам |
//+------------------------------------------------------------------+
bool HasOpenPositions()
{
for(int i=PositionsTotal()-1; i>=0; i--)
{
if(PositionSelectByTicket(PositionGetTicket(i)))
{
string symbol = PositionGetString(POSITION_SYMBOL);
if(symbol == Symb1 || symbol == Symb2)
{
return true; // Нашли открытую позицию
}
}
}
return false; // Нет открытых позиций
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
double ask1=SymbolInfoDouble(Symb1,SYMBOL_ASK);
double bid1=SymbolInfoDouble(Symb1,SYMBOL_BID);

double ask2=SymbolInfoDouble(Symb2,SYMBOL_ASK);
double bid2=SymbolInfoDouble(Symb2,SYMBOL_BID);

// Закрытие по прибыли
if(AllProfit()>Profit && Profit>0)
CloseAll();

if(AllProfit(0)>Profit && Profit>0)
CloseAll(0);

if(AllProfit(1)>Profit && Profit>0)
CloseAll(1);

// Новая свеча
if(t!=iTime(NULL,0,0))
{
// === ПРОВЕРКА: открываем ТОЛЬКО если нет открытых позиций ===
if(!HasOpenPositions())
{
// Сигнал на покупку (медвежьи свечи на обоих инструментах)
if(Buy && iClose(Symb1,0,1)<iOpen(Symb1,0,1) && iClose(Symb2,0,1)<iOpen(Symb2,0,1))
{
trade.Buy(Lot,Symb1,ask1,0,0,«Multik_Buy»);
trade.Buy(Lot,Symb2,ask2,0,0,«Multik_Buy»);
Print(«Открыты покупки по »,Symb1," и ",Symb2);
}

// Сигнал на продажу (бычьи свечи на обоих инструментах)
if(Sell && iClose(Symb1,0,1)>iOpen(Symb1,0,1) && iClose(Symb2,0,1)>iOpen(Symb2,0,1))
{
trade.Sell(Lot,Symb1,bid1,0,0,«Multik_Sell»);
trade.Sell(Lot,Symb2,bid2,0,0,«Multik_Sell»);
Print(«Открыты продажи по »,Symb1," и ",Symb2);
}
}
else
{
Print(«Есть открытые позиции, новые не открываем»);
}
// =========================================================

t=iTime(NULL,0,0);
}

Comment("\n ====== Multik v1.00 ======",
"\n Общая прибыль: ",DoubleToString(AllProfit(),2),
"\n Прибыль по покупкам: ",DoubleToString(AllProfit(0),2),
"\n Прибыль по продажам: ",DoubleToString(AllProfit(1),2),
"\n -------------------------",
"\n ",Symb1," Close[1]: ",DoubleToString(iClose(Symb1,0,1),5),
"\n ",Symb1," Open[1]: ",DoubleToString(iOpen(Symb1,0,1),5),
"\n -------------------------",
"\n ",Symb2," Close[1]: ",DoubleToString(iClose(Symb2,0,1),5),
"\n ",Symb2," Open[1]: ",DoubleToString(iOpen(Symb2,0,1),5),
"\n -------------------------",
"\n Открытых позиций: ",PositionsTotal(),
"\n Есть позиции по символам: ",HasOpenPositions()? «ДА»: «НЕТ»);
}
//+------------------------------------------------------------------+
avatar

igrun

  • 27 апреля 2026, 18:14
0
откуда это где тз или не надо
avatar

igrun

  • 27 апреля 2026, 17:23
0
может с нуля или неа, ну или хотяб прикрепи тз
avatar

igrun

  • 27 апреля 2026, 15:46