BLACKJACK 21.11.2009 08:44
Приветствую всех читающих данную тему.
Возникла необходимость в доработке советника
"e-CloseByLossOrProfit " |
Советник выполняет закрытие всех позиций при достижении общего по счёту заданного уровня убытка или прибыли в валюте депозита. Кроме того, этот советник может ещё и удалить отложенные ордера. |
Возможно ли переориентировать советник,чтобы он закрывал все позиции при достижении заданного размера именно средств по счету (вторая колонка терминала),а также после чего закрывал и сам терминал, как "e-CloseByPercentProfit "
Помогите,кто в состоянии.
Сайт автора изложенных советников www.kimiv.ru
esCloseByPercentProfit.rar (2.91 KB) удалить
eqCloseByLossOrProfit.rar (2.59 KB) удалить
Посмотри этот советник http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=73
Может подойдет
Посмотри этот советник http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=73
Может подойдет
Благодарю за участие.Советника посмотрел;идея с виртуальным тралом великолепна,но ее с наскока не впихнуть в мой случай.А если и впихнуть,то только как составляющую.
В указанном советнике точкой отсчета также является колонка прибыли, а мне необходим размер средств
BLACKJACK 21.11.2009 08:44
Приветствую всех читающих данную тему.
Возникла необходимость в доработке советника
e-CloseByLossOrProfit " |
Советник выполняет закрытие всех позиций при достижении общего по счёту заданного уровня убытка или прибыли в валюте депозита. Кроме того, этот советник может ещё и удалить отложенные ордера. |
Возможно ли переориентировать советник,чтобы он закрывал все позиции при достижении заданного размера именно средств по счету (вторая колонка терминала),а также после чего закрывал и сам терминал, как "e-CloseByPercentProfit "
Помогите,кто в состоянии.
Сайт автора изложенных советников www.kimiv.ru
esCloseByPercentProfit.rar (2.91 KB) удалить
eqCloseByLossOrProfit.rar (2.59 KB) удалить
можно и не дорабатывать советник а прикрепить специальный зацикленный скрипт. при достижении максимального или минимального значения все ордера и отложки закроются
имеется в виду разница AccountEquity()-AccountBalance()
//+------------------------------------------------------------------+
//| panelektrik@yandex.ru |
//| Starigin Konstantin |
//+------------------------------------------------------------------+
#property show_inputs
extern int maxCLOSE=+100;
extern int minCLOSE=-100;
int objekt1(string Trade)
{
ObjectCreate("max",OBJ_LABEL,0,0,0);
ObjectSetText("max","max = +"+Trade, 10,"Times New Roman",DodgerBlue);
ObjectSet("max", OBJPROP_CORNER, 1);
ObjectSet("max", OBJPROP_XDISTANCE, 20);
ObjectSet("max", OBJPROP_YDISTANCE, 10);
}
int objekt2(string Trade)
{
ObjectCreate("min",OBJ_LABEL,0,0,0);
ObjectSetText("min","min = "+Trade, 10,"Times New Roman",Tomato);
ObjectSet("min", OBJPROP_CORNER, 1);
ObjectSet("min", OBJPROP_XDISTANCE, 20);
ObjectSet("min", OBJPROP_YDISTANCE, 30);
}
int start()
{
objekt1(maxCLOSE);
objekt2(minCLOSE);
PlaySound("Wait.wav");
while(!IsStopped())
{
if((AccountEquity()-AccountBalance()>maxCLOSE)||(AccountEquity()-AccountBalance()<minCLOSE))
if(close()==0)
{
PlaySound("Wait.wav");
ObjectDelete("max");
ObjectDelete("min");
break;
}
Sleep(10000);
}
}
//+------------------------------------------------------------------+
int close()
{
for(int i=OrdersTotal(); i+1>=0; i--)
{
RefreshRates();
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)&&(OrderType()==OP_BUY))
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(Symbol(),MODE_SPREAD));
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)&&(OrderType()==OP_SELL))
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(Symbol(),MODE_SPREAD));
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
OrderDelete(OrderTicket());
}
return(OrdersTotal());
}
//+------------------------------------------------------------------+
int deinit()
{
ObjectDelete("max");
ObjectDelete("min");
}
можно и не дорабатывать советник а прикрепить специальный зацикленный скрипт. при достижении максимального или минимального значения все ордера и отложки закроются
имеется в виду разница AccountEquity()-AccountBalance()
//+------------------------------------------------------------------+
//| panelektrik@yandex.ru |
//| Starigin Konstantin |
//+------------------------------------------------------------------+
#property show_inputs
extern int maxCLOSE=+100;
extern int minCLOSE=-100;
int objekt1(string Trade)
{
ObjectCreate("max",OBJ_LABEL,0,0,0);
ObjectSetText("max","max = +"+Trade, 10,"Times New Roman",DodgerBlue);
ObjectSet("max", OBJPROP_CORNER, 1);
ObjectSet("max", OBJPROP_XDISTANCE, 20);
ObjectSet("max", OBJPROP_YDISTANCE, 10);
}
int objekt2(string Trade)
{
ObjectCreate("min",OBJ_LABEL,0,0,0);
ObjectSetText("min","min = "+Trade, 10,"Times New Roman",Tomato);
ObjectSet("min", OBJPROP_CORNER, 1);
ObjectSet("min", OBJPROP_XDISTANCE, 20);
ObjectSet("min", OBJPROP_YDISTANCE, 30);
}
int start()
{
objekt1(maxCLOSE);
objekt2(minCLOSE);
PlaySound("Wait.wav");
while(!IsStopped())
{
if((AccountEquity()-AccountBalance()>maxCLOSE)||(AccountEquity()-AccountBalance()<minCLOSE))
if(close()==0)
{
PlaySound("Wait.wav");
ObjectDelete("max");
ObjectDelete("min");
break;
}
Sleep(10000);
}
}
//+------------------------------------------------------------------+
int close()
{
for(int i=OrdersTotal(); i+1>=0; i--)
{
RefreshRates();
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)&&(OrderType()==OP_BUY))
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(Symbol(),MODE_SPREAD));
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)&&(OrderType()==OP_SELL))
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(Symbol(),MODE_SPREAD));
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
OrderDelete(OrderTicket());
}
return(OrdersTotal());
}
//+------------------------------------------------------------------+
int deinit()
{
ObjectDelete("max");
ObjectDelete("min");
}
Константин, благодарю заранее.
Обязательно опробую данный скрипт,в ближайшее время.
Возник вопрос по коду:в какой строке функция SLIPPAGE, и что означает строка кода Sleep?со значением(10000)
Прикрепленный первый скрипт одноразовый, после срабатывания завершает работу.
Прикрепляю еще такой же только многоразовый
Константин
Возник вопрос по коду:в какой строке функция SLIPPAGE, и что означает строка кода Sleep?со значением(10000)
SLIPPAGE равен спреду OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(Symbol(),MODE_SPREAD));
sleep нужен для того чтобы скрипт проверял данные 1 раз за 10000 миллисекунд(10секунд), без этого параметра терминал зависнет
SLIPPAGE равен спреду OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(Symbol(),MODE_SPREAD));
sleep нужен для того чтобы скрипт проверял данные 1 раз за 10000 миллисекунд, без этого параметра терминал зависнет
По второму вопросу все понятно,
По SLIPPAGE вопрос не ясен. Я может не верно обозначил суть.
Изначально имеем по коду скрипта:
___________________________
extern int maxCLOSE=+100;
extern int minCLOSE=-100;
___________________________
Вопрос: при каком значении сработает скрипт
+ 98?
+102?
+104?
И где в коде отражено,какое значение имеет slippage(Проскальзывание)?
По второму вопросу все понятно,
По SLIPPAGE вопрос не ясен. Я может не верно обозначил суть.
Изначально имеем по коду скрипта:
___________________________
extern int maxCLOSE=+100;
extern int minCLOSE=-100;
___________________________
Вопрос: при каком значении сработает скрипт
+ 98?
+102?
+104?
И где в коде отражено,какое значение имеет slippage(Проскальзывание)?
сработает скрипт при +100 с максимальным отклонением +-спред
отражено в функции OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(Symbol(),MODE_SPREAD));
выделено красным это SLIPPAGE
можно и не дорабатывать советник а прикрепить специальный зацикленный скрипт. при достижении максимального или минимального значения все ордера и отложки закроются
имеется в виду разница AccountEquity()-AccountBalance()
//+------------------------------------------------------------------+
//| panelektrik@yandex.ru |
//| Starigin Konstantin |
//+------------------------------------------------------------------+
#property show_inputs
extern int maxCLOSE=+100;
extern int minCLOSE=-100;
int objekt1(string Trade)
{
ObjectCreate("max",OBJ_LABEL,0,0,0);
ObjectSetText("max","max = +"+Trade, 10,"Times New Roman",DodgerBlue);
ObjectSet("max", OBJPROP_CORNER, 1);
ObjectSet("max", OBJPROP_XDISTANCE, 20);
ObjectSet("max", OBJPROP_YDISTANCE, 10);
}
int objekt2(string Trade)
{
ObjectCreate("min",OBJ_LABEL,0,0,0);
ObjectSetText("min","min = "+Trade, 10,"Times New Roman",Tomato);
ObjectSet("min", OBJPROP_CORNER, 1);
ObjectSet("min", OBJPROP_XDISTANCE, 20);
ObjectSet("min", OBJPROP_YDISTANCE, 30);
}
int start()
{
objekt1(maxCLOSE);
objekt2(minCLOSE);
PlaySound("Wait.wav");
while(!IsStopped())
{
if((AccountEquity()-AccountBalance()>maxCLOSE)||(AccountEquity()-AccountBalance()<minCLOSE))
if(close()==0)
{
PlaySound("Wait.wav");
ObjectDelete("max");
ObjectDelete("min");
break;
}
Sleep(10000);
}
}
//+------------------------------------------------------------------+
int close()
{
for(int i=OrdersTotal(); i+1>=0; i--)
{
RefreshRates();
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)&&(OrderType()==OP_BUY))
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(Symbol(),MODE_SPREAD));
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)&&(OrderType()==OP_SELL))
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(Symbol(),MODE_SPREAD));
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
OrderDelete(OrderTicket());
}
return(OrdersTotal());
}
//+------------------------------------------------------------------+
int deinit()
{
ObjectDelete("max");
ObjectDelete("min");
}
Возможно ли вносить(задавать перед каждой работой скрипта) необходимые значения,но только в виде конкретных чисел,при достижении которых и "зашкаливании" скрипт и сработает разово,до следующего запуска(внесения нового значения)?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приветствую всех читающих данную тему.
Возникла необходимость в доработке советника
Советник выполняет закрытие всех позиций при достижении общего по счёту заданного уровня убытка или прибыли в валюте депозита. Кроме того, этот советник может ещё и удалить отложенные ордера.
Возможно ли переориентировать советник,чтобы он закрывал все позиции при достижении заданного размера именно средств по счету (вторая колонка терминала),а также после чего закрывал и сам терминал, как "e-CloseByPercentProfit "
Помогите,кто в состоянии.
Сайт автора изложенных советников www.kimiv.ru
esCloseByPercentProfit.rar (2.91 KB) удалить
eqCloseByLossOrProfit.rar (2.59 KB) удалить