• Добро пожаловать на инвестиционный форум!

    Во всем многообразии инвестиций трудно разобраться. MMGP станет вашим надежным помощником и путеводителем в мире инвестиций. Только самые последние тренды, передовые технологии и новые возможности. 400 тысяч пользователей уже выбрали нас. Самые актуальные новости, проверенные стратегии и способы заработка. Сюда люди приходят поделиться своим опытом, найти и обсудить новые перспективы. 16 миллионов сообщений, оставленных нашими пользователями, содержат их бесценный опыт и знания. Присоединяйтесь и вы!

    Впрочем, для начала надо зарегистрироваться!
  • 🔥 Мы ищем редактора/модератора для новостных разделов форума. Подробности вакансии и условия можно найти в данной теме
  • 🐑 Моисей водил бесплатно. А мы платим, хотя тоже планируем работать 40 лет! Принимай участие в партнеской программе MMGP
  • 📝 Знаешь буквы и умеешь их компоновать? Платим. Дорого. Бессрочная акция от MMGP: "ОПЛАТА ЗА СООБЩЕНИЯ"

требуется скрипт

ХЫШНИК

МАСТЕР
Регистрация
18.05.2007
Сообщения
1,649
Реакции
21
Поинты
0.00
нужна помощь...мне нужен скрипт такой..или помошник..вобщем моя ТС предпологает выставление 2х отложенных ордеров в разные стороны(бай стоп и сел стоп) так вот нужно чтобы при исполнении одно из ордеров второй удалялся автоматически..подскажите как это реализовать..
 

Demark

Интересующийся
Регистрация
02.08.2007
Сообщения
165
Реакции
5
Поинты
0.00

Aisller

Главный модератор
Команда форума
Администратор
Главный модератор
Регистрация
07.12.2007
Сообщения
23,415
Реакции
5,424
Поинты
0.11
нужна помощь...мне нужен скрипт такой..или помошник..вобщем моя ТС предпологает выставление 2х отложенных ордеров в разные стороны(бай стоп и сел стоп) так вот нужно чтобы при исполнении одно из ордеров второй удалялся автоматически..подскажите как это реализовать..

Проверь, сейчас быстренько набросал, а проверить негде, выходные, но должно все правильно работать:

Код:
#property copyright "Graf"
#property link      "http://www.pro-fx.biz"


int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }


//Кол-во отложенных на Бай
int ordercountBUY()
{
string To,Tn;
int cnt,col;
col=0;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   To = OrderSymbol();
   if ((To==Symbol())  && (OrderType()==OP_BUYSTOP))  col=col+1;
   }
return(col);
}

//Кол-во отложенных на Селл
int ordercountSELL()
{
string To,Tn;
int cnt, col;
col=0;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   To = OrderSymbol();
   if ((To==Symbol())  && (OrderType()==OP_SELLSTOP))  col=col+1;
   }
return(col);
}

// -------------------------------  Кол-во открытых на бай
int countBUY()
{
string To;
int cnt,col;
col=0;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,0);
   To = OrderSymbol();
   if ((To==Symbol())  && (OrderType()==OP_BUY))  col=col+1;
   }
return(col);
}

// -----------------------------   Кол-во открытых на Селл
int countSELL()
{
string To,Tn;
int cnt, col;
col=0;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   To = OrderSymbol();
   if ((To==Symbol())  && (OrderType()==OP_SELL))  col=col+1;
   }
return(col);
}



//Отмена отложенных
int CloseAll()
{
int cnt;
bool n3,n4,rez;
rez=true;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   if  ((OrderSymbol()==Symbol())  && (OrderType()==OP_BUYSTOP))  n3=OrderDelete( OrderTicket(), 0);
   if  ((OrderSymbol()==Symbol())  && (OrderType()==OP_SELLSTOP)) n4=OrderDelete( OrderTicket(), 0);
   }
return(rez);
}



int start()
  {
   return(0);
   if ((countSELL()==1) && (ordercountBUY()==1)) CloseAll();
   if ((ordercountSELL()==1) && (countBUY()==1)) CloseAll();
   
  }
//+------------------------------------------------------------------+
 

ХЫШНИК

МАСТЕР
Регистрация
18.05.2007
Сообщения
1,649
Реакции
21
Поинты
0.00
первый код немножко не работает...

вот рабочая версия..спасибо Graf..
PHP:
#property copyright "Graf"
#property link      "http://www.pro-fx.biz"


int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }


//Кол-во отложенных на Бай
int ordercountBUY()
{
string To,Tn;
int cnt,col;
col=0;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   To = OrderSymbol();
   if ((To==Symbol())  && ((OrderType()==OP_BUYSTOP) || (OrderType()==OP_BUYLIMIT)))  col=col+1;
   }
return(col);
}

//Кол-во отложенных на Селл
int ordercountSELL()
{
string To,Tn;
int cnt, col;
col=0;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   To = OrderSymbol();
   if ((To==Symbol())  && ((OrderType()==OP_SELLSTOP) || (OrderType()==OP_SELLLIMIT)))  col=col+1;
   }
return(col);
}

// -------------------------------  Кол-во открытых на бай
int countBUY()
{
string To;
int cnt,col;
col=0;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,0);
   To = OrderSymbol();
   if ((To==Symbol())  && (OrderType()==OP_BUY))  col=col+1;
   }
return(col);
}

// -----------------------------   Кол-во открытых на Селл
int countSELL()
{
string To,Tn;
int cnt, col;
col=0;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   To = OrderSymbol();
   if ((To==Symbol())  && (OrderType()==OP_SELL))  col=col+1;
   }
return(col);
}



//Отмена отложенных
int CloseAll()
{
int cnt;
bool n3,n4,rez;
rez=true;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   if  ((OrderSymbol()==Symbol())  && (OrderType()==OP_BUYSTOP))   OrderDelete( OrderTicket(), 0);
   if  ((OrderSymbol()==Symbol())  && (OrderType()==OP_SELLSTOP))  OrderDelete( OrderTicket(), 0);
   if  ((OrderSymbol()==Symbol())  && (OrderType()==OP_BUYLIMIT))  OrderDelete( OrderTicket(), 0);
   if  ((OrderSymbol()==Symbol())  && (OrderType()==OP_SELLLIMIT)) OrderDelete( OrderTicket(), 0);
   }
return(rez);
}

//Возвращает общий профит
double AllProfit()
{
string To;
int cnt;
double prof=0; 
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   To = OrderSymbol();
   if ( (To==Symbol())  && (OrderType()==OP_SELL) )  prof=prof+OrderProfit()+OrderSwap();
   if ( (To==Symbol())  && (OrderType()==OP_BUY)  )  prof=prof+OrderProfit()+OrderSwap();
   }
return(prof);
}


int start()
  {
   
   if ( (countSELL()==1) && (ordercountBUY()==1) ) CloseAll();
   if ( (ordercountSELL()==1) && (countBUY()==1) ) CloseAll();
   
   
   Comment("BUY  = "+countBUY()+"n"+"SELL = "+countSELL()+"n"+
           "BUY LIMIT  = "+ordercountBUY()+"n"+"SELL LIMIT = "+ordercountSELL()+"n"+Symbol()+" = "+AllProfit());
   return(0);
  }
//+------------------------------------------------------------------+
 

ХЫШНИК

МАСТЕР
Регистрация
18.05.2007
Сообщения
1,649
Реакции
21
Поинты
0.00
если кто вдруг не знает как этот код приатачить к терминалу обьясняю..

1 открываем MetaEditor..(в терминале вверху под справкой жёлтый ромб с воскл. знаком)
2 файл-> создать-> советник
3 очистить появившийся шаблон и скопировать туда код...
4 нажать "Компилировать" (тоже вверху..недалеко от справки)
5 перезагрузить терминал..в окне "навигатор" по вкладке советник найти советник и перетащить на граик
6 в появившихся опциях поставить галку в "разрешить советнику торговать"...жмакнуть "ок"..
7 чтобы всё работало должно быть так..см. рисунок..
 

Aisller

Главный модератор
Команда форума
Администратор
Главный модератор
Регистрация
07.12.2007
Сообщения
23,415
Реакции
5,424
Поинты
0.11

ХЫШНИК

МАСТЕР
Регистрация
18.05.2007
Сообщения
1,649
Реакции
21
Поинты
0.00

dunaef

Интересующийся
Регистрация
18.10.2007
Сообщения
119
Реакции
0
Поинты
0.00

dunaef

Интересующийся
Регистрация
18.10.2007
Сообщения
119
Реакции
0
Поинты
0.00
Для трейдера данная стратегия не являеться оптимальной по многим причинам, а для мтс для выполнения жесткого алгоритма думаю может приносить прибыль. Вопрос возмется кто нибудь написать советника или нет, может пора искать в другом месте. Да второй индикатор трендовый здесь.
 

Вложения

  • Stop_reversal.zip
    1.1 KB · Просмотры: 41

ХЫШНИК

МАСТЕР
Регистрация
18.05.2007
Сообщения
1,649
Реакции
21
Поинты
0.00
Последнее редактирование модератором:
Сверху Снизу