1. Откуда взялся такой необычный алгоритм для открытия позиций? Наверное это какая-то особенность данной пары..... на других парах действительно результат неуд.
2.
BeerGod:
Настройки по умолчанию, использую вариант с ММ, только на EUR-USD H1, на других парах и таймфреймах результат неудовлетворительный, на нескольких парах одновременно работать не планировалось и поэтому при закрытии ордера не проверяется мейджик номер.
А можно немного подправить код для проверки мейджика? Куда и какую строчку вставить? А то он действительно цепляет ордера даже других пар, что не вери гуд.
Поставил на реал, версия с ММ и я вполне доволен, только период МА лучше 19 (согласно тестера). Надо бы только проверку мейджика сделать.......
dimasik: а вы могли бы сделать его, чтобы он работал на нескольких парах без глюков ? на тесте получаются интересные результаты на нефти, s&p 500 и др. ... хочется проверить несколько инструментов.... рез-ты выложу
Присоединяюсь к просьбе о нескольких парах. Интересно будет также глянуть на результаты других инструментов......
Кстати когда в тестере гонял его, то ставил оптимизацию MaximumRisk, DecreaseFactor и balans. В результате можно подогнать ММ более рисковый или менее...., короче все просто и интересно! А еще пробовал оптить TimeBarOpen и самый лучший параметр для него это 15.
dimasik: BeerGod, какие настройки советника у вас ? и на каком тф ? И еще вопрос, я тестирую вашего советника на демке на нескольких парах... и он бывает открывает и тут же закрывает позы по нескольку раз... в чем причина ?
Настройки по умолчанию, использую вариант с ММ, только на EUR-USD H1, на других парах и таймфреймах результат неудовлетворительный, на нескольких парах одновременно работать не планировалось и поэтому при закрытии ордера не проверяется мейджик номер.
а вы могли бы сделать его, чтобы он работал на нескольких парах без глюков ? на тесте получаются интересные результаты на нефти, s&p 500 и др. ... хочется проверить несколько инструментов.... рез-ты выложу
Добавил проверку мейджика при закрытии ордера, проверил работает на нескольких парах теперь корректно, для каждой пары нужно указывать своё "магическое число" и оптимизировать Period_MA и TimeBarOpen, а также уменьшить Slippage в случае четырехзначных котировок. Код ниже.
#property copyright "Scam Laboratory 2012"#property link "http://www.forex4you.org/?affid=bdbda7b"//=============== Меню ===============================================externstring Name="BeerGodEA (29.06.12)";
externstring MoneyManagement = "MoneyManagement";
externdouble MaximumRisk = 0.1; // прогресия лота на каждые 1000 баланса +0.1 лот. например депозит стал 2000 лот =0.2, 3000 лот =0.3 итдexterndouble DecreaseFactor = 3.0; // если будет две убыточные сделки лот уменьшится от предыдущего деленое на DecreaseFactorexterndouble balans = 1000; // шаг баланса, баланс реинвестирования, на каждую 1000 депо будет умножатся лот на рискexterndouble Lots = 0.01; // начальный лотexternstring Indicators="Параметры индикаторов";
externint Period_MA=20; // Период МАexternint TimeBarOpen = 15; // время свечи для принятия решенияexternstring Server="Параметры сервера";
externint Slippage = 10; // Допустимое проскальзование ценыexternstring Magic="Магическое число";
externint mn= 100; // Магический номер//============== Переменные ==========================================string GetNameOP="BeerGodEA"; // комент в открытом ордереdouble TimeBar_t; // текущее время свечиdouble sv_close; // цена закрытия свечиdouble PA; // текущая ценаdouble MA_1_t; // МА текущаяdouble MA_1_p; // МА предыдущаяdouble NewBuy; // сигнал открытия покупкиdouble NewSell; // сигнал открытия продажи//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
if (!IsTesting())
{
if (IsExpertEnabled())
{
Comment("Советник будет запущен следующим тиком");
}
else
{
Comment("Отжата кнопка \"Разрешить запуск советников\"");
}
}
return (0);
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----//----return(0);
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{//0//======== получение данных с индикаторов и текущей цены ==============
{//1
MA_1_t=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0); // МА_1 текущая
MA_1_p=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,1); // МА_1 предыдущая
TimeBar_t = (TimeCurrent()-Time[0])/60; // время в минутах с открытия свечи
sv_close = iClose(NULL,0,1); // цена закрытия свечи на предыдущем баре
PA = Bid; // получение текущей ценыRefreshRates ();
}//1 // ================= Обработка сигналов ===============================
{//2if ((PA < MA_1_t) && (MA_1_t < MA_1_p) && (PA < sv_close) && (TimeBar_t==TimeBarOpen)) NewBuy = 1; else NewBuy = 0; // условие BUYif ((PA > MA_1_t) && (MA_1_t > MA_1_p) && (PA > sv_close) && (TimeBar_t==TimeBarOpen)) NewSell = 1; else NewSell = 0; // условие SELL
}//2// ================= Открытие сделки ===================================
{//3// открытие BUYif ((NewBuy == 1) && (ExistPositions() == false)) OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,Slippage,0,0,GetNameOP,mn,0,LightSkyBlue);
// открытие Sellif ((NewSell == 1) && (ExistPositions() == false)) OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,Slippage,0,0,GetNameOP,mn,0,HotPink);
}//3// ================= Закрытие сделки ===================================
{//4if (NewBuy == 1)
{
ClossAllProfitSell ();
ClossAllLossSell();
Sleep(1000);
}
if (NewSell == 1)
{
ClossAllProfitBuy ();
ClossAllLossBuy();
Sleep(1000);
}
}//4// ================= Комментарии ======================================
{//5if (!IsTesting())
{
Comment("Magic=",mn, " PA=",PA, " MA_t=",MA_1_t," MA_p=",MA_1_p," Sv_close=",sv_close," TimeBar=",TimeBar_t); // Комментарий в угол окна
}
}//5// ====================================================================return(0);
}//0// =================== END ============================================// ================= Функции ==========================================//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 06.03.2008 |//| Описание : Возвращает флаг существования позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//| ot - время открытия ( 0 - любое время открытия) |//+----------------------------------------------------------------------------+bool ExistPositions(string sy="", int op=-1, datetime ot=0) {
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (ot<=OrderOpenTime()) return(True);
}
}
}
}
}
}
return(False);
}
//END//+------------------------------------------------------------------+//| Закрыть прибыльные ордера |//+------------------------------------------------------------------+// ====================== Закрыть BUY в профите ===============================double ClossAllProfitBuy ()
{
int Profit1=Slippage;
int col1=Gold;
int ask1, bid1, open1;
double point1;
for (int i1=OrdersTotal()-1; i1>=0; i1--)
{
if (!OrderSelect(i1,SELECT_BY_POS,MODE_TRADES)) break;
if ((OrderType()==OP_BUY) && (OrderMagicNumber()==mn))
{
point1=MarketInfo(Symbol(),MODE_POINT);
if (point1==0) break;
bid1=MathRound(MarketInfo(OrderSymbol(),MODE_BID)/point1);
open1=MathRound(OrderOpenPrice()/point1);
if (bid1-open1<Profit1) continue;
OrderClose(OrderTicket(),OrderLots(),bid1*point1,Slippage,col1);
}
}
}
// End// ====================== Закрыть SELL в профите ===============================double ClossAllProfitSell ()
{
int Profit2=Slippage;
int col2=Gold;
int ask2, bid2, open2;
double point2;
for (int i2=OrdersTotal()-1; i2>=0; i2--)
{
if (!OrderSelect(i2,SELECT_BY_POS,MODE_TRADES)) break;
if ((OrderType()==OP_SELL) && (OrderMagicNumber()==mn))
{
point2=MarketInfo(Symbol(),MODE_POINT);
if (point2==0) break;
ask2=MathRound(MarketInfo(OrderSymbol(),MODE_ASK)/point2);
open2=MathRound(OrderOpenPrice()/point2);
if (open2-ask2<Profit2) continue;
OrderClose (OrderTicket(),OrderLots(),ask2*point2,Slippage,col2) ;
}
}
}
// End//+------------------------------------------------------------------+//| Закрыть убыточные ордера |//+------------------------------------------------------------------+// ====================== Закрыть BUY в убытке ===============================double ClossAllLossBuy()
{
int Stop4=Slippage;
int ask4, bid4, open4;
double point4;
for (int i4=OrdersTotal()-1; i4>=0; i4--)
{
if (!OrderSelect(i4,SELECT_BY_POS,MODE_TRADES)) break;
if ((OrderType()==OP_BUY) && (OrderMagicNumber()==mn))
{
point4=MarketInfo(Symbol(),MODE_POINT);
if (point4==0) break;
bid4=MathRound(MarketInfo(Symbol(),MODE_BID)/point4);
open4=MathRound(OrderOpenPrice()/point4);
if (open4-bid4<Stop4) continue;
OrderClose(OrderTicket(),OrderLots(),bid4*point4,Slippage,Red);
}
}
}
// End// ====================== Закрыть SELL в убытке ===============================double ClossAllLossSell()
{
int Stop5=Slippage;
int ask5, bid5, open5;
double point5;
for (int i5=OrdersTotal()-1; i5>=0; i5--)
{
if (!OrderSelect(i5,SELECT_BY_POS,MODE_TRADES)) break;
if ((OrderType()==OP_SELL) && (OrderMagicNumber()==mn))
{
point5=MarketInfo(Symbol(),MODE_POINT);
if (point5==0) break;
ask5=MathRound(MarketInfo(Symbol(),MODE_ASK)/point5);
open5=MathRound(OrderOpenPrice()/point5);
if (ask5-open5<Stop5) continue;
OrderClose (OrderTicket(),OrderLots(),ask5*point5,Slippage,Red);
}
}
}
// End//+----------------------------------------------------------------------------------------+//| ММ Функция работает по принципу наращивания лота при увеличении |//| депозита, и уменьшении лота при серии убыточных сделок лот возвращается |//| на начальный лот в данном случае 0.1 если происходит профит то следующий |//| лот расчитывается по прогресии. |//| К примеру при депозите 500 старт лота будет равен 0.1 далее депозит |//| увеличивается до 5000 лот будет равен 1 если будет две убыточные сделки |//| лот уменьшится от предыдущего деленое на DecreaseFactor = 3, если по далее |//| две сделки будут убыточные,уменьшится от предыдущего деленое на DecreaseFactor = 3, |//| далее если сделка будет прибыльной то следующий лот откроется из расчета |//| баланса депозита "баланс/500*0.1"=лот внешние переменные |//+----------------------------------------------------------------------------------------+double LotsOptimized() {
double minlot = MarketInfo(Symbol(), MODE_MINLOT);
double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);
double lot = Lots;
int orders = OrdersHistoryTotal();
int losses = 0;
lot = NormalizeDouble((AccountFreeMargin()- AccountCredit()) * MaximumRisk / balans, 2);
if (DecreaseFactor > 0.0) {
for (int i = orders - 1; i >= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == FALSE) {
Print("Error in history!");
break;
}
if (OrderSymbol() != Symbol() || OrderType() > OP_SELL) continue;
if (OrderProfit() > 0.0) break;
if (OrderProfit() < 0.0) losses++;
}
if (losses > 1) lot = NormalizeDouble(lot - lot * losses / DecreaseFactor, 2);
}
if(lot < minlot) lot = minlot;
if(lot > maxlot) lot = maxlot;
return (lot);}
// End
1. Откуда взялся такой необычный алгоритм для открытия позиций? Наверное это какая-то особенность данной пары..... на других парах действительно результат неуд.
2.
BeerGod:
Настройки по умолчанию, использую вариант с ММ, только на EUR-USD H1, на других парах и таймфреймах результат неудовлетворительный, на нескольких парах одновременно работать не планировалось и поэтому при закрытии ордера не проверяется мейджик номер.
А можно немного подправить код для проверки мейджика? Куда и какую строчку вставить? А то он действительно цепляет ордера даже других пар, что не вери гуд.
Поставил на реал, версия с ММ и я вполне доволен, только период МА лучше 19 (согласно тестера). Надо бы только проверку мейджика сделать.......
1. Алгоритм взялся ночью под пиво, сам толком не понял как.
2. Код подправил, теперь на нескольких парах работает корректно, если на каждой паре задать свой мейджик, код на этой странице, файл для скачивания не обновляется и не добавляется.
extern string Name="BeerGodEA (25.06.12)";
extern double Lot = 0.1;
extern int TimeBarOpen = 1;
extern int Period_MA=20; // Период МА
extern int Slippage = 1;
extern int mn= 5824;
//============== Переменные ==========================================
string GetNameOP="BeerGodEA"; // комент в открытом ордере
double TimeBar_t; // текущее время свечи
double sv_close; // цена закрытия свечи
double MA_1_t; // МА текущая
double MA_1_p; // МА предыдущая
double NewBuy; // сигнал открытия покупки
double NewSell; // сигнал открытия продажи
//==============
int start()
{//0
//======== получение данных с индикаторов и текущей цены ======================
MA_1_t=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0); // МА_1 текущая
MA_1_p=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,1); // МА_1 текущая
TimeBar_t = (TimeCurrent()-Time[0])/60; // время в минутах с открытия свечи
sv_close = iClose(NULL,0,1); // цена закрытия свечи на предыдущем баре
// ================= Открытие сделки ===================================
// открытие BUY
if ((NewBuy == 1) && !(ExistPositions())) OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,0,0,GetNameOP,mn,0,LightSkyBlue);
// открытие Sell
if ((NewSell == 1) && !(ExistPositions())) OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,0,0,GetNameOP,mn,0,HotPink);
if (NewSell == 1)
{
ClossAllProfitBuy ();
//ClossAllLossBuy();
}
// ================= Комментарии ======================================
Comment("Работаем :)"); // Комментарий в угол окна
// =====================================================================
return(0);
}//0
// ================= Функции ==========================================
//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 06.03.2008 |
//| Описание : Возвращает флаг существования позиций |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| op - операция (-1 - любая позиция) |
//| mn - MagicNumber (-1 - любой магик) |
//| ot - время открытия ( 0 - любое время открытия) |
//+----------------------------------------------------------------------------+
bool ExistPositions() {
for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
return(True);} return(False);}
//END
//+------------------------------------------------------------------+
//| Закрыть ордера |
//+------------------------------------------------------------------+
// ====================== Закрыть BUY в профите ===============================
double ClossAllProfitBuy ()
{ for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Gold);}
}
// ====================== Закрыть SELL в профите ===============================
double ClossAllProfitSell ()
{ for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
if (OrderType()==OP_SELL)OrderClose (OrderTicket(),OrderLots(),Ask,Slippage,Gold);}
}
// End
Интересный советник! Автору спасибо!
Пару вопросов.
1. Откуда взялся такой необычный алгоритм для открытия позиций? Наверное это какая-то особенность данной пары..... на других парах действительно результат неуд.
2.
Настройки по умолчанию, использую вариант с ММ, только на EUR-USD H1, на других парах и таймфреймах результат неудовлетворительный, на нескольких парах одновременно работать не планировалось и поэтому при закрытии ордера не проверяется мейджик номер.
А можно немного подправить код для проверки мейджика? Куда и какую строчку вставить? А то он действительно цепляет ордера даже других пар, что не вери гуд.
Поставил на реал, версия с ММ и я вполне доволен, только период МА лучше 19 (согласно тестера). Надо бы только проверку мейджика сделать.......
а вы могли бы сделать его, чтобы он работал на нескольких парах без глюков ? на тесте получаются интересные результаты на нефти, s&p 500 и др. ... хочется проверить несколько инструментов.... рез-ты выложу
Присоединяюсь к просьбе о нескольких парах. Интересно будет также глянуть на результаты других инструментов......
Кстати когда в тестере гонял его, то ставил оптимизацию MaximumRisk, DecreaseFactor и balans. В результате можно подогнать ММ более рисковый или менее...., короче все просто и интересно! А еще пробовал оптить TimeBarOpen и самый лучший параметр для него это 15.
Народ, а кто-нибудь может выложить вариант советника с ММ, а то я не программер, в кодах ничего не понимаю, куда его вставлять и т.д....
Отправил в личном сообщении.
BeerGod, какие настройки советника у вас ? и на каком тф ? И еще вопрос, я тестирую вашего советника на демке на нескольких парах... и он бывает открывает и тут же закрывает позы по нескольку раз... в чем причина ?
Настройки по умолчанию, использую вариант с ММ, только на EUR-USD H1, на других парах и таймфреймах результат неудовлетворительный, на нескольких парах одновременно работать не планировалось и поэтому при закрытии ордера не проверяется мейджик номер.
Добавил проверку мейджика при закрытии ордера, проверил работает на нескольких парах теперь корректно, для каждой пары нужно указывать своё "магическое число" и оптимизировать Period_MA и TimeBarOpen, а также уменьшить Slippage в случае четырехзначных котировок. Код ниже.
Интересный советник! Автору спасибо!
Пару вопросов.
1. Откуда взялся такой необычный алгоритм для открытия позиций? Наверное это какая-то особенность данной пары..... на других парах действительно результат неуд.
2.
Настройки по умолчанию, использую вариант с ММ, только на EUR-USD H1, на других парах и таймфреймах результат неудовлетворительный, на нескольких парах одновременно работать не планировалось и поэтому при закрытии ордера не проверяется мейджик номер.
А можно немного подправить код для проверки мейджика? Куда и какую строчку вставить? А то он действительно цепляет ордера даже других пар, что не вери гуд.
Поставил на реал, версия с ММ и я вполне доволен, только период МА лучше 19 (согласно тестера). Надо бы только проверку мейджика сделать.......
1. Алгоритм взялся ночью под пиво, сам толком не понял как.
2. Код подправил, теперь на нескольких парах работает корректно, если на каждой паре задать свой мейджик, код на этой странице, файл для скачивания не обновляется и не добавляется.
Откуда у вас такие результаты? Вот результат на котировках качества моделирования 99%. Сливает за 2011 год даже..
на 99% моделировании не идёт ни один советник, (кроме мартина), там урезанные тики.
советник можно существенно укоротить, безпотери результатов.
#property copyright "Scam Laboratory 2012"
#property link "http://www.forex4you.org/?affid=bdbda7b"
//=============== Меню ===============================================
extern string Name="BeerGodEA (25.06.12)";
extern double Lot = 0.1;
extern int TimeBarOpen = 1;
extern int Period_MA=20; // Период МА
extern int Slippage = 1;
extern int mn= 5824;
//============== Переменные ==========================================
string GetNameOP="BeerGodEA"; // комент в открытом ордере
double TimeBar_t; // текущее время свечи
double sv_close; // цена закрытия свечи
double MA_1_t; // МА текущая
double MA_1_p; // МА предыдущая
double NewBuy; // сигнал открытия покупки
double NewSell; // сигнал открытия продажи
//==============
int start()
{//0
//======== получение данных с индикаторов и текущей цены ======================
MA_1_t=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0); // МА_1 текущая
MA_1_p=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,1); // МА_1 текущая
TimeBar_t = (TimeCurrent()-Time[0])/60; // время в минутах с открытия свечи
sv_close = iClose(NULL,0,1); // цена закрытия свечи на предыдущем баре
// ================= Обработка сигналов ===============================
if ((Bid < MA_1_t) && (MA_1_t < MA_1_p) && (Bid < sv_close) && (TimeBar_t==TimeBarOpen)) NewBuy = 1; else NewBuy = 0; // условие BUY
if ((Bid > MA_1_t) && (MA_1_t > MA_1_p) && (Bid > sv_close) && (TimeBar_t==TimeBarOpen)) NewSell = 1; else NewSell = 0; // условие BUY
// ================= Открытие сделки ===================================
// открытие BUY
if ((NewBuy == 1) && !(ExistPositions())) OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,0,0,GetNameOP,mn,0,LightSkyBlue);
// открытие Sell
if ((NewSell == 1) && !(ExistPositions())) OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,0,0,GetNameOP,mn,0,HotPink);
// ================= Закрытие сделки ===================================
if (NewBuy == 1)
{
ClossAllProfitSell();
//ClossAllLossSell();
}
if (NewSell == 1)
{
ClossAllProfitBuy ();
//ClossAllLossBuy();
}
// ================= Комментарии ======================================
Comment("Работаем :)"); // Комментарий в угол окна
// =====================================================================
return(0);
}//0
// ================= Функции ==========================================
//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 06.03.2008 |
//| Описание : Возвращает флаг существования позиций |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| op - операция (-1 - любая позиция) |
//| mn - MagicNumber (-1 - любой магик) |
//| ot - время открытия ( 0 - любое время открытия) |
//+----------------------------------------------------------------------------+
bool ExistPositions() {
for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
return(True);} return(False);}
//END
//+------------------------------------------------------------------+
//| Закрыть ордера |
//+------------------------------------------------------------------+
// ====================== Закрыть BUY в профите ===============================
double ClossAllProfitBuy ()
{ for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
if (OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Gold);}
}
// ====================== Закрыть SELL в профите ===============================
double ClossAllProfitSell ()
{ for (int i=0; i<OrdersTotal(); i++) {OrderSelect(i,0);
if(Symbol()!=OrderSymbol()||OrderMagicNumber()!=mn) continue;
if (OrderType()==OP_SELL)OrderClose (OrderTicket(),OrderLots(),Ask,Slippage,Gold);}
}
// End