Доработка ботов (советников, индикаторов)

Статус
Закрыто для дальнейших ответов.
Уникальная проблема !

Уважаемые профессионалы !
В ветках форумов для начинающих моя просьба больше не рассматривается... Очевидно сложная она все таки для ветки начинающих. Закрывалка всего лишь не закрывает...
Прошу посмотреть на код и если кому ведома наука машинных закрывалок и та ошибка кода(внизу по тексту), которая колебает меня уже около месяца времени,
- растолкуйте пожалуйста что она такое и как с ней общаться ?
Оччень хочется доработать закрывалку до рабочего состояния, чтоб закрывала наконец-то открытые позиции. В отличие от всех других, широко известных рабочих закрывалок в этой только индикатор другой, - индикатор Хала (HMA), - та же Наша "машка".

СПАСИБО !

//+------------------------------------------------------------------+
//| zakrivalka2_buy.mq4 |
//+------------------------------------------------------------------+
extern double Lots = 0.01;
double price,result,COLOR;
int ticket,cnt,MagicNumber = 7;

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

void start()
{
if (!IsTradeAllowed()) Sleep(5000);
RefreshRates();

double val1=iCustom(NULL, 0, "hma",8,3,0,0,0);
double val2=iCustom(NULL, 0, "hma",8,3,0,0,4);

if(val2>val1) Print("красный");
{
for(cnt=0; cnt < OrdersTotal(); cnt++)
{
if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) == true)
{
if(OrderMagicNumber() == MagicNumber && OrderType()==OP_BUY)
result=OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
}
if(result!=true)
{
int err=GetLastError();
Print("LastError = ",err);
}
}
}
}
 
Последнее редактирование:
Уважаемые профессионалы !
В ветках форумов для начинающих моя просьба больше не рассматривается... Очевидно сложная она все таки для ветки начинающих. Закрывалка всего лишь не закрывает...
Прошу посмотреть на код и если кому ведома наука машинных закрывалок и та ошибка кода(внизу по тексту), которая колебает меня уже около месяца времени,
- растолкуйте пожалуйста что она такое и как с ней общаться ?
Оччень хочется доработать закрывалку до рабочего состояния, чтоб закрывала наконец-то открытые позиции. В отличие от всех других, широко известных рабочих закрывалок в этой только индикатор другой, - индикатор Хала (HMA), - та же Наша "машка".

СПАСИБО !


result=OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
да уж. Сам писал? Красное замени на Bid
Сейчас посмотрел твои условия закрытия: Она будет закрывать сразу же твои ордера Независимо от условий. Сделай так:
if(val2>val1) {
Print("красный");
for(cnt=0; cnt < OrdersTotal(); cnt++)
{
if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) == true)
{
if(OrderMagicNumber() == MagicNumber && OrderType()==OP_BUY)
result=OrderClose(OrderTicket(),OrderLots(),Bid,3, Red);
}
if(result!=true)
{
int err=GetLastError();
Print("LastError = ",err);
}
}
}
}
 
Последнее редактирование:
Вопрос такой, иногда происходит проскальзывание на тейк профит, т.е. он не выставляется в сделке, из-за большого потока ордеров в один момент, есть советник который будет мониторить и выставлять фиксированный тейк профит в случае если он не был выставлен?
 
да уж. Сам писал? Красное замени на Bid
Сейчас посмотрел твои условия закрытия: Она будет закрывать сразу же твои ордера Независимо от условий. Сделай так:
if(val2>val1) {
Print("красный");
for(cnt=0; cnt < OrdersTotal(); cnt++)
{
if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) == true)
{
if(OrderMagicNumber() == MagicNumber && OrderType()==OP_BUY)
result=OrderClose(OrderTicket(),OrderLots(),Bid,3, Red);
}
if(result!=true)
{
int err=GetLastError();
Print("LastError = ",err);
}
}
}
}

Да, писали вдвоём и вот она какая простая, - но ошибка...
Сейчас поправлю и установлю на тест, результаты сообщю.
СПАСИБО ВАМ !
Удачи и профитов !
 
Вопрос не понятен. Он и так при заданной просадке закроет позиции или при заданном профите.

:-( Да точно както не так
Ну попробую на примере: допустим работает советник (не этот) в 2 окна со своими настройками открывает и закрывает ордера, но как только общая просадка доходит допустим до 50% активируется e-CloseByPercentProfit и он закроет все сразу вместе с терминалом при достижении цели допустим 0 , профит или не большой минус , как задашь в настройках. Мысль такова что бы после просадки советники не ждали профита а закрывались в 0, или минус. Вроде все изложил)
 
Возможно ли что бы этот советник начинал роботать после определенной просадки в процентах или валюте? Если возможно буду очень благодарен)

Везет мне сегодня на советники с ошибкой.
Терминал закрывать не будет. Не знаю как исправить.
Будет просто при определённой просадке активироваться и отслеживать позиции и потом закроет по заданному профиту или убытку.
 

Вложения

Вопрос такой, иногда происходит проскальзывание на тейк профит, т.е. он не выставляется в сделке, из-за большого потока ордеров в один момент, есть советник который будет мониторить и выставлять фиксированный тейк профит в случае если он не был выставлен?

Наверно где нибудь есть. У меня нет. Обратись в поиск советников. Может кто-нибудь поделится.
 
Везет мне сегодня на советники с ошибкой.
Терминал закрывать не будет. Не знаю как исправить.
Будет просто при определённой просадке активироваться и отслеживать позиции и потом закроет по заданному профиту или убытку.
С закрыванием терминала я вчера разобрался там в инклуд фаил кинуть надо. За работу очень брагодарен!!! Не сочтите за наглость но может вы и тут сможете помоч. Советник ставит стартовую линию и от нее раскидывает сетку, проблема в том что если ордера закрывает не ОН то вся сетка отложенников выставляется от предведущей линии и после хорошего движения это очень не приятно:oops: причем эту старт линию даже в ручную не перетянуть, нужно только окна закрывать и открывать новые... Хочелось бы (если возможно) чтоб при закрытии ордеров и удалении отложенников предведущим советником (e-CloseByPercentProfit) отложенники стартовали от текущей цены , а не от той наглой линии) Еще раз БООльшое спасибо!!!:-)
 

Вложения

Ну или хотя бы чтоб линия обновлялась после закрытия ордеров другим советником.
И еще хотел уточнить , e-CloseByPercentProfit после того как закроет все ордера, будет спать до следующей просадки?
 
Ну или хотя бы чтоб линия обновлялась после закрытия ордеров другим советником.
И еще хотел уточнить , e-CloseByPercentProfit после того как закроет все ордера, будет спать до следующей просадки?

Да он будет ждать новой просадки. Советник посмотрю но ничего не обещаю.
 
Не сочтите за наглость но может вы и тут сможете помоч. Советник ставит стартовую линию и от нее раскидывает сетку, проблема в том что если ордера закрывает не ОН то вся сетка отложенников выставляется от предведущей линии и после хорошего движения это очень не приятно:oops: причем эту старт линию даже в ручную не перетянуть, нужно только окна закрывать и открывать новые... Хочелось бы (если возможно) чтоб при закрытии ордеров и удалении отложенников предведущим советником (e-CloseByPercentProfit) отложенники стартовали от текущей цены , а не от той наглой линии) Еще раз БООльшое спасибо!!!:-)

Скиньте файл Orders.csv . Без него не получается запустить.
 
Уважаемые программисты помогите плийз

Сообщение от Ted Nikson Здравствуйте eevviil. Вы знаете индикатор HP DIFF (для работы на график нужно прикрыпить два индюка HP и HP DIFF). По просьба другому участника вы уже прикрепили раньше к етому индюка alert. Можно ли сейчась по этому индюку написать простую сову основаную на принципе только открытия позиции в бай или сел при смене цвета? За ранее вырожаю благодарность и огромное спасибо если поможете, а если нет всеравно спасибо за ваш труд до тех пор. [Ted Nikson: Здравствуйте eevviil. Вы знаете индикатор HP DIFF (для работы на график нужно прикрыпить два индюка HP и HP DIFF). По просьба другому участника вы уже прикрепили раньше к етому индюка alert. Можно ли сейчась по этому индюку написать простую сову основаную на принципе только открытия позиции в бай или сел при смене цвета?]

Посмотрите советники iCustom, их куча от v1 до v10. можно любой выбрать, они в свободном доступе.

Спосибо для совет, но не получилось. Наверно проблем в том что индикатор HP_DIFF, по котором надо сделаем експерт, для своя работа ползует другой второй индикатор HP. Я не знаю как с етом справлюс в експерте. Приклепляю еще раз два индикатора и мой експерт i custom, которой не работает (есть две ошибки).
 

Вложения

  • Like
Реакции: fix
Помогите доработать код, точнее закрытие по сигналу. Имеется выдержка из кода рабочей совы>
//+------------------------------------------------------------------+
// Если время торговли не истекло и мы не открывали позицию на этом баре:
//+------------------------------------------------------------------+

if(Traiding && timeCheckSignal!=Time[0])

{
//+------------------------------------------------------------------+
// Если сигнал на бай:
//+------------------------------------------------------------------+
if(Signal==1)// buy
{
//Вычисляем стоплосс
if(StopLoss!=0)sl=Bid-StopLoss*Point; else sl=0;
// ВЫчисляем тейкпрофит
if(TakeProfit!=0)tp=Ask+TakeProfit*Point; else tp=0;
//+------------------------------------------------------------------+
//Закрываем противоположную позицию
//+------------------------------------------------------------------+
if(ClosePosifChange)CPD(Symbol(),OP_SELL,Magic);
//+------------------------------------------------------------------+
//Открываем позицию
//+------------------------------------------------------------------+
if((ONlyOnePosbySignal && !EPs(Symbol(),OP_BUY,Magic)) || !ONlyOnePosbySignal)
{
OPs(Symbol(),OP_BUY,GetSizeLot(),sl,tp,Magic,"Templates www.expforex.com");
timeCheckSignal=Time[0];
Nap1=0; Nap2=0;
}

}

//+------------------------------------------------------------------+
// Если сигнал на селл:
//+------------------------------------------------------------------+
if(Signal==2)// селл
{
//Вычисляем стоплосс
if(StopLoss!=0)sl=Ask+StopLoss*Point; else sl=0;
// ВЫчисляем тейкпрофит
if(TakeProfit!=0)tp=Bid-TakeProfit*Point; else tp=0;
//Закрываем противоположную позицию
if(ClosePosifChange)CPD(Symbol(),OP_BUY,Magic);
//+------------------------------------------------------------------+
//Открываем позицию
//+------------------------------------------------------------------+
if((ONlyOnePosbySignal && !EPs(Symbol(),OP_SELL,Magic)) || !ONlyOnePosbySignal)
{
OPs(Symbol(),OP_SELL,GetSizeLot(),sl,tp,Magic,"Templates www.expforex.com");
timeCheckSignal=Time[0];
Nap1=0; Nap2=0;
}

}

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

Суть данного блока, закрывает открытый/серию открытых ордеров, только в том случае, если поступил сигнал на открытие ордера в противоположную сторону. Но если поступил сигнал на открытие ордера в туже сторону что уже открытый ордер, то открытый ордер не закрывается, а открывается ещё один в туже сторону.
____
Требуется сделать так, что бы он всегда закрывал открытый ордер перед открытием нового, неважно в какую сторону поступил сигнал.
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.

Посмотрели (191) Посмотреть

Отслеживают (859) Посмотреть

Назад
Верх