стоплосс устанавливается во время открытия сделки. прямиком в сделке - ВЫ устанавливаете стоплосс.
Думаю Код, который Вам дадут, Вам не поможет, ибо Вы не сможете его "вставить" в советник.
Лучше обратитесь в фриланс.
стоплосс устанавливается во время открытия сделки. прямиком в сделке - ВЫ устанавливаете стоплосс.
Думаю Код, который Вам дадут, Вам не поможет, ибо Вы не сможете его "вставить" в советник.
Лучше обратитесь в фриланс.
советник я написал, и он работает. А вот что бы он закрывал сделку по закрытию свечи - ни как не получается. Думаю, что такой код я смогу вставить в свой советник.
советник я написал, и он работает. А вот что бы он закрывал сделку по закрытию свечи - ни как не получается. Думаю, что такой код я смогу вставить в свой советник.
смею предположить что это нужно для мт4?
где то из соседних тем я уже писал про закрытие сделок на текущей свече - это неправильно, много вариантов.
Вам нужно закрывать по откртию новой свечи?
функция определения бара открытия сделки :
{
datetime t;
int i,k=OrdersTotal();
if(order_symbol=="" || order_symbol=="0") order_symbol=Symbol();
for(i=0; i<k; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==order_symbol)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(order_type<0 || OrderType()==order_type)
{
if(order_magic<0 || OrderMagicNumber()==order_magic)
{
if(t<OrderOpenTime()) t=OrderOpenTime();
}
}
}
}
}
}
return(iBarShift(order_symbol, tf, t, True));
}
функция закрытия:
{
int i,k=OrdersTotal();
if(order_symbol=="0") order_symbol=Symbol();
for(i=k-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if((OrderSymbol()==order_symbol || order_symbol=="") && (order_type<0 || OrderType()==order_type))
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(order_magic<0 || OrderMagicNumber()==order_magic) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrNONE);
}
}
}
}
}
итого надо вставить условие:
Если начался новый бар от открытия сделки - закрываем ее
совмещаем две функции воедино и делаем так:
{
datetime t;
int i,k=OrdersTotal();
if(order_symbol=="" || order_symbol=="0") order_symbol=Symbol();
for(i=0; i<k; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==order_symbol)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(order_type<0 || OrderType()==order_type)
{
if(order_magic<0 || OrderMagicNumber()==order_magic)
{
if(t<OrderOpenTime()) t=OrderOpenTime();
if(iBarShift(order_symbol, tf, t, True)>=1)OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrNONE);
}
}
}
}
}
}
return;
}
параметры:
//| Параметры: |
//| order_symbol - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| order_type - операция (-1 - любая позиция) |
//| order_magic - MagicNumber (-1 - любой магик) |
//| |
//+----------------------------------------------------------------------------+
смею предположить что это нужно для мт4?
где то из соседних тем я уже писал про закрытие сделок на текущей свече - это неправильно, много вариантов.
Вам нужно закрывать по откртию новой свечи?
функция определения бара открытия сделки :
{
datetime t;
int i,k=OrdersTotal();
if(order_symbol=="" || order_symbol=="0") order_symbol=Symbol();
for(i=0; i<k; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==order_symbol)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(order_type<0 || OrderType()==order_type)
{
if(order_magic<0 || OrderMagicNumber()==order_magic)
{
if(t<OrderOpenTime()) t=OrderOpenTime();
}
}
}
}
}
}
return(iBarShift(order_symbol, tf, t, True));
}
функция закрытия:
{
int i,k=OrdersTotal();
if(order_symbol=="0") order_symbol=Symbol();
for(i=k-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if((OrderSymbol()==order_symbol || order_symbol=="") && (order_type<0 || OrderType()==order_type))
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(order_magic<0 || OrderMagicNumber()==order_magic) OrderClose(OrderTicket(),OrderLots(),OrderPrice(),0,clrNONE);
}
}
}
}
}
итого надо вставить условие:
Если начался новый бар от открытия сделки - закрываем ее
совмещаем две функции воедино и делаем так:
{
datetime t;
int i,k=OrdersTotal();
if(order_symbol=="" || order_symbol=="0") order_symbol=Symbol();
for(i=0; i<k; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==order_symbol)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(order_type<0 || OrderType()==order_type)
{
if(order_magic<0 || OrderMagicNumber()==order_magic)
{
if(t<OrderOpenTime()) t=OrderOpenTime();
if(iBarShift(order_symbol, tf, t, True)>=1)OrderClose(OrderTicket(),OrderLots(),OrderPrice(),0,clrNONE);
}
}
}
}
}
}
return;
}
параметры:
//| Параметры: |
//| order_symbol - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| order_type - операция (-1 - любая позиция) |
//| order_magic - MagicNumber (-1 - любой магик) |
//| |
//+----------------------------------------------------------------------------+
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте.
Нужен код для вставки в советник, чтобы он закрывал сделку либо по стоп-лосу, либо после закрытия свечи если стоп-лос не сработал.
как написать такой код и вставить его в советник? Может есть у кого готовый код?