Добрый день! Прошу добавить в настройки следующий функционал в мультивалютный советник. Надо чтобы в работе было ограниченное количество пар (из списка валютных пар) указанное в настройках. Появился сигнал по EURUSD и AUDUSD (в настройках указано что кол-во пар -2шт всего пар 9шт. в настройках.) сова открыла ордера по этим валютным парам и больше не открывает ордера по остальным валютным парам из списка пока не закроется одна из пар в работе. Спасибо!
MULT Sovetnik.mq 4 (0 Kb)
Комментарии (18)
23 igrun Сообщений: 1639 - igrun
//| Mult.mq4 |
//| Copyright 2015, AM2 |
//| www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright «Copyright 2015, AM2»
#property link «www.forexsystems.biz»
#property version «1.00»
#property strict
extern string s=«Выбор валютной пары»;
extern string Symbol1 = «EURUSD»;
extern string Symbol2 = «GBPUSD»;
extern string Symbol3 = «AUDUSD»;
extern string Symbol4 = «NZDUSD»;
extern string Symbol5 = «AUDCAD»;
extern string Symbol6 = «EURAUD»;
extern string Symbol7 = «EURCAD»;
extern string Symbol8 = «EURGBP»;
extern string Symbol9 = «EURJPY»;
extern string ss=«Настройки советника»;
extern double Lots = 0.01; // лот
extern int TakeProfit = 200; // Тейк
extern int StopLoss = 100; // Лосс
extern int Slip = 30; // Проскальзывание
extern int Shift = 1; // бар индикатора
extern int Magic = 123; // Магик
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
Comment("");
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment("");
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(Symbol1!=""){OpenPos(Symbol1); }
if(Symbol2!=""){OpenPos(Symbol2); }
if(Symbol3!=""){OpenPos(Symbol3); }
if(Symbol4!=""){OpenPos(Symbol4); }
if(Symbol5!=""){OpenPos(Symbol5); }
if(Symbol6!=""){OpenPos(Symbol6); }
if(Symbol7!=""){OpenPos(Symbol7); }
if(Symbol8!=""){OpenPos(Symbol8); }
if(Symbol9!=""){OpenPos(Symbol9); }
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutOrder(int type,double price,string symb)
{
int r=0,d=0;
color clr=Green;
double sl=0,tp=0, pp=0;
pp= MarketInfo(symb,MODE_POINT);
d =(int)MarketInfo(symb,MODE_DIGITS);
if(type==1 || type==3 || type==5)
{
clr=Red;
if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*pp,d);
if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*pp,d);
}
if(type==0 || type==2 || type==4)
{
clr=Blue;
if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*pp,d);
if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*pp,d);
}
r=OrderSend(symb,type,Lots,NormalizeDouble(price,d),Slip,sl,tp,«Машки»,Magic,0,clr);
return;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OpenPos(string symb)
{
double bid=0,ask=0;
if(CountTrades(symb)<1)
{
bid = MarketInfo(symb,MODE_BID);
ask = MarketInfo(symb,MODE_ASK);
//buy
if(iClose(symb,0,1)<iOpen(symb,0,1))
{
PutOrder(0,ask,symb);
}
//sell
if(iClose(symb,0,1)>iOpen(symb,0,1))
{
PutOrder(1,bid,symb);
}
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int CountTrades(string symb)
{
int count=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==symb && OrderMagicNumber()==Magic)
{
if(OrderType()<2) count++;
}
}
}
return(count);
}
//+------------------------------------------------------------------+
11 serqww Автор Сообщений: 63
11 serqww Автор Сообщений: 63
35 AM2 Сообщений: 16247 - Андрей
11 serqww Автор Сообщений: 63
не совсем понятно чего вы хотите. чтобы торговал только по двум парам, уберите остальные в настройках
35 AM2 Сообщений: 16247 - Андрей
Еще раз В настройках указано 9 пар в Доп. функции что хочу (В настройках советника — «ограничение кол-во пар в работе» — 2(Указываем число пар))появился сигнал по EURUSD сова открыла ордер потом появился сигнал по AUDUSD сова открыла ордер и все после этого сова не открывает ордера по другим парам указанных в настройках. Далее по EURUSD ордер закрылся в работе осталась пара AUDUSD значит сове разрешено открыть ордер по любой из пар из списка как появится сигнал. Спасибо! Редактирован: 12 сентября 2024, 11:59
11 serqww Автор Сообщений: 63
35 AM2 Сообщений: 16247 - Андрей
11 serqww Автор Сообщений: 63
//+------------------------------------------------------------------+
//| Определение количества валютных пар из открытых ордеров |
//+------------------------------------------------------------------+
int SymbolsCount()
{
int count = 0;
string symbols[];
for(int i = 0; i < OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderType() <= OP_SELL)
{
bool is_elem = false;
for(int j = 0; j < ArraySize(symbols); j++)
{
if(OrderSymbol() == symbols[j])
{
is_elem = true;
}
}
if(!is_elem || ArraySize(symbols) == 0)
{
ArrayResize(symbols,i + 1);
symbols[i] = OrderSymbol();
count++;
}
}
}
}
return(count);
}
11 serqww Автор Сообщений: 63
если выставлено меньше двух ордеров узнать символ выставленного ордера, исключить из списка, по списку рекурсивно проверять сигнал
повторять до опупения
6 srt Сообщений: 43
www.mql5.com/ru/forum/213667?ysclid=m0z9ib6j42695705929
11 serqww Автор Сообщений: 63
35 AM2 Сообщений: 16247 - Андрей
11 serqww Автор Сообщений: 63
ну вот это все подробно нужно описать, весь круг. а что значит повторять до опупения? что значит рекурсивно повторять сигнал? тоже подробно опишите
35 AM2 Сообщений: 16247 - Андрей
Редактирован: 17 сентября 2024, 19:40
6 srt Сообщений: 43
MultVariant
6 srt Сообщений: 43
11 serqww Автор Сообщений: 63
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий