Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Версии советника для терминала MetaTrader 4 версий старше 600
Внимание! В этой теме обсуждаем только работу советника. Всякие ахи, охи, оверквотинг, и любые разговоры, не связанные непосредственно с работой и настройкой советника запрещены.

ТЕМА: BasketBull11_4

BasketBull11_4 05 Июнь 2016 17:55 #1108

  • next
  • next аватар
  • Вне сайта
  • Давно я тут
  • Сообщений: 134
  • Спасибо получено: 49
  • Репутация: 8
Нужно понять кто удаляет эти тейки.


Я думаю что никто их не удаляет.. в коде стоит явная проверка на
их наличие..if(тейки_разрешены && take==0)
Но ключевой момент опять не увидел-))..
curr_ask+(price-curr_ask)+фиксированный_тейк*curr_point;
То есть если цена на момент установки тейка на позу БАЙ ниже цены открытия (просадка).., то
мы к текушей цене на момент установки тейка, добавляем растояние просадки
(price-curr_ask)

Администратор запретил публиковать записи гостям.
Спасибо сказали: Evgeniy

BasketBull11_4 05 Июнь 2016 18:12 #1109

  • super65
  • super65 аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 6
  • Спасибо получено: 9
  • Репутация: 1
next пишет:
Но ключевой момент опять не увидел-))..
curr_ask+(price-curr_ask)+фиксированный_тейк*curr_point;
Вы хотя бы код в последнем посту смотрели?
price+фиксированный_тейк*curr_point;
Выкладываю код этой функции в финальном виде.
int set_stops(int com,string pair)
{
int num,order_sl,order_tp,i,err=0;
 
for(i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES) || (OrderMagicNumber()!=Magic && !обрабатывать_чужие)) continue;
string symbol=OrderSymbol();
num=SArrayBsearch(Пары,symbol);
if((pair!="Все" && symbol!=pair) || num==-1) continue;
int ticket=OrderTicket();
int type=OrderType();
int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
double curr_ask =SymbolInfoDouble(symbol,SYMBOL_ASK);
double curr_bid =SymbolInfoDouble(symbol,SYMBOL_BID);
double curr_point=SymbolInfoDouble(symbol,SYMBOL_POINT);
int curr_spread=(int)SymbolInfoInteger(symbol,SYMBOL_SPREAD);
double curr_psar=iSAR(symbol,параболик_тф_сл,параболик_шаг_сл,параболик_макс_сл,0);
int stoplevel=(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL);
if(stoplevel==0) stoplevel=(int)(2*curr_spread);
double price= OrderOpenPrice();
double lots = OrderLots();
double take = OrderTakeProfit();
double loss = OrderStopLoss();
double profit=OrderProfit()+OrderCommission()+OrderSwap();
double TPP = 0;
double SLP = 0;
double SWL = 0;
 
if((int)уровень_безубытка<stoplevel) уровень_безубытка=stoplevel;
 
//======================== ОБРАБОТКА ПОКУПОК
switch(type)
{
case OP_BUY:
{
switch(com)
{
case 2:/* *********Обработка реальных тейков *********************** */
{
if(take==0)
{
if(фиксированный_тейк!=0) order_tp=(int)фиксированный_тейк;
else order_tp=(int)(RangeCalc(symbol)*1.8);
if(price>curr_ask) TPP=NormalizeDouble(price+order_tp*curr_point,digits);
else TPP=NormalizeDouble(curr_ask+order_tp*curr_point,digits);
 
if(OrderModify(ticket,price,loss,TPP,0,clrNONE))
{
if(расширенный_отладчик) Print(__FUNCTION__,": Установка тейка,пара: ",symbol,", ордер: ",ticket," тейк=",TPP);
}
else
{
err=GetLastError();
if(расширенный_отладчик) Print(__FUNCTION__,": Установка тейка,пара: ",symbol,", ордер: ",ticket," тейк=",TPP," Ошибка:",err);
}
}
}
break;
case 3:/* *********Обработка безубытка *********************** */
{
if(loss<price || loss==0)
{
if((curr_bid-price)>уровень_безубытка*curr_point)
{
SWL=NormalizeDouble(price+уровень_безубытка*curr_point/2,digits);
if(OrderModify(ticket,price,SWL,take,0,clrNONE))
{
if(расширенный_отладчик) Print(__FUNCTION__,": Установка безубытка,пара: ",symbol,", ордер: ",ticket," безубыток=",SWL);
}
else
{
err=GetLastError();
if(расширенный_отладчик) Print(__FUNCTION__,": Установка безубытка,пара: ",symbol,", ордер: ",ticket," безубыток=",SWL," Ошибка:",err);
}
}
}
}
break;
case 0:/* *********Обработка реальных стопов *********************** */
case 1:
{
if(стопы_по_параболику)// Стоп по параболику. Если параболик выше цены - ждем.
{
if((curr_bid-curr_psar)>stoplevel*curr_point) SLP=NormalizeDouble(curr_psar,digits);
}
else
{
if(фиксированный_стоп!=0) order_sl=(int)фиксированный_стоп; // Фиксированный стоп - приоритет.
else order_sl=RangeCalc(symbol); // Рассчетный стоплосс
SLP=NormalizeDouble(curr_bid-order_sl*curr_point,digits);
}
switch(com)
{
case 0:
{
if(SLP!=0 && SLP!=loss)
{
if(loss==0 || ((SLP-loss)>шаг_трала_в_пунктах*curr_point && (profit>0 || !только_профит)))
{
if(OrderModify(ticket,price,SLP,take,0,clrNONE))
{
if(расширенный_отладчик) Print(__FUNCTION__,": Модификация трейлстопа,пара: ",symbol,", ордер: ",ticket," стоп=",SLP);
}
else
{
err=GetLastError();
if(расширенный_отладчик) Print(__FUNCTION__,": Модификация трейлстопа,пара: ",symbol,", ордер: ",ticket," стоп=",SLP," Ошибка:",err);
}
}
}
}
break;
case 1:
{
if(SLP!=0 && SLP!=loss)
{
if(OrderModify(ticket,price,SLP,take,0,clrNONE))
{
if(расширенный_отладчик) Print(__FUNCTION__,": Принудительная установка/сдвиг стопа, point=",curr_point);
}
else
{
err=GetLastError();
if(расширенный_отладчик) Print(__FUNCTION__,": Принудительная установка/сдвиг стопа, point=",curr_point," Ошибка:",err);
}
}
}
break;
default: break;
}
}
break;
default: break;
}
} //BUY
break;
//======================== ОБРАБОТКА ПРОДАЖ
case OP_SELL:
{
switch(com)
{
case 2:/* *********Обработка реальных тейков *********************** */
{
if(take==0)
{
if(фиксированный_тейк!=0) order_tp=(int)фиксированный_тейк;
else order_tp=(int)(RangeCalc(symbol)*1.8);
if(price>curr_bid) TPP=NormalizeDouble(curr_bid-order_tp*curr_point,digits);
else TPP=NormalizeDouble(price-order_tp*curr_point,digits);
 
if(OrderModify(ticket,price,loss,TPP,0,clrNONE))
{
if(расширенный_отладчик) Print(__FUNCTION__,": Установка тейка,пара: ",symbol,", ордер: ",ticket," тейк=",TPP);
}
else
{
err=GetLastError();
if(расширенный_отладчик) Print(__FUNCTION__,": Установка тейка,пара: ",symbol,", ордер: ",ticket," тейк=",TPP," Ошибка:",err);
}
}
}
break;
case 3:/* *********Обработка безубытка *********************** */
{
if(loss>price || loss==0)
{
if((price-curr_ask)>уровень_безубытка*curr_point)
{
SWL=NormalizeDouble(price-уровень_безубытка*curr_point/2,digits);
if(OrderModify(ticket,price,SWL,take,0,clrNONE))
{
if(расширенный_отладчик) Print(__FUNCTION__,": Установка безубытка,пара: ",symbol,", ордер: ",ticket," безубыток=",SWL);
}
else
{
err=GetLastError();
if(расширенный_отладчик) Print(__FUNCTION__,": Установка безубытка,пара: ",symbol,", ордер: ",ticket," безубыток=",SWL," Ошибка:",err);
}
}
}
}
break;
case 0:/* *********Обработка реальных стопов *********************** */
case 1:
{
if(стопы_по_параболику)
{
if((curr_psar-curr_ask)>stoplevel*curr_point) SLP=NormalizeDouble(curr_psar,digits);
}
else
{
if(фиксированный_стоп!=0) order_sl=(int)фиксированный_стоп; // Фиксированный стоп - приоритет.
else order_sl=RangeCalc(symbol); // Рассчетный стоплосс
SLP=NormalizeDouble(curr_ask+order_sl*curr_point,digits);
}
switch(com)
{
case 0:
{
if(SLP!=0 && SLP!=loss)
{
if(loss==0 || ((loss-SLP)>шаг_трала_в_пунктах*curr_point && (profit>0 || !только_профит)))
{
if(OrderModify(ticket,price,SLP,take,0,clrNONE))
{
if(расширенный_отладчик) Print(__FUNCTION__,": Модификация стопа,пара: ",symbol,", ордер: ",ticket," стоп=",SLP);
}
else
{
err=GetLastError();
if(расширенный_отладчик) Print(__FUNCTION__,": Модификация стопа,пара: ",symbol,", ордер: ",ticket," стоп=",SLP," Ошибка:",err);
}
}
}
}
break;
case 1:
{
if(SLP!=0 && SLP!=loss)
{
if(OrderModify(ticket,price,SLP,take,0,clrNONE))
{
if(расширенный_отладчик) Print(__FUNCTION__+": Принудительная установка/сдвиг стопа, point=",curr_point);
}
else
{
err=GetLastError();
if(расширенный_отладчик) Print(__FUNCTION__+": Принудительная установка/сдвиг стопа, point=",curr_point," Ошибка:",err);
}
}
}
break;
default: break;
}
}
break;
default: break;
}
} //SELL
break;
default: break;
}
} // for
return(err);
}
В функции main() было
if(трейлинг_стоп || безубыток) set_stops(0,"Все");
if(тейки_разрешены) set_stops(2,"Все");
стало
if(трейлинг_стоп) set_stops(0,"Все");
if(тейки_разрешены) set_stops(2,"Все");
if(безубыток) set_stops(3,"Все");
В функции orders() было
set_stops(3,"Все");
стало
set_stops(0,"Все");
Администратор запретил публиковать записи гостям.
Спасибо сказали: Evgeniy, The_Siberian

BasketBull11_4 05 Июнь 2016 18:27 #1110

  • next
  • next аватар
  • Вне сайта
  • Давно я тут
  • Сообщений: 134
  • Спасибо получено: 49
  • Репутация: 8
Есть мой косяк.. мимо глаз проскочило-))

Администратор запретил публиковать записи гостям.
Спасибо сказали: Evgeniy

BasketBull11_4 05 Июнь 2016 18:37 #1112

  • The_Siberian
  • The_Siberian аватар
  • Вне сайта
  • Живу я здесь
  • Сообщений: 581
  • Спасибо получено: 181
  • Репутация: 16
next пишет:
Есть мой косяк.. мимо глаз проскочило-))

хочу за женьку , некста, заступиться! он много сделал!!! и коли есть ощибки.... не обезсудте на него!!!!!!!!

тут мама не горюй сколько еще надо!



ИМХО!!!
Администратор запретил публиковать записи гостям.

BasketBull11_4 06 Июнь 2016 08:38 #1113

  • Evgeniy
  • Evgeniy аватар
  • Вне сайта
  • Живу я здесь
  • Сообщений: 362
  • Спасибо получено: 42
  • Репутация: 9
Очень рад что приняли участие в корректировке кода.

По пути подучимся
Администратор запретил публиковать записи гостям.

BasketBull11_4 15 Июнь 2016 10:40 #1132

  • dorohov7
  • dorohov7 аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 1
  • Репутация: 0
А существует ли в природе полное описание установки и настройки советника?Без такового новичку самому не разобраться.
Администратор запретил публиковать записи гостям.

BasketBull11_4 15 Июнь 2016 11:33 #1133

  • Levsha70
  • Levsha70 аватар
  • Вне сайта
  • Давно я тут
  • Сообщений: 89
  • Спасибо получено: 13
  • Репутация: 3
Жень, посмотри может отсюда трал "вагонетку" взять и приспособить.
Вложения:
  • Вложение Это вложение скрыто для гостей. Пожалуйста, авторизуйтесь или зарегистрируйтесь, чтобы увидеть его.
  • Вложение Это вложение скрыто для гостей. Пожалуйста, авторизуйтесь или зарегистрируйтесь, чтобы увидеть его.
Администратор запретил публиковать записи гостям.

BasketBull11_4 20 Янв 2017 15:12 #1545

  • The_Siberian
  • The_Siberian аватар
  • Вне сайта
  • Живу я здесь
  • Сообщений: 581
  • Спасибо получено: 181
  • Репутация: 16
Юрич, добра тебе!


тут один мысля посИтил...


а есть ли вариант, закейсовать, а не перекидывать // условия управления


направление[num]=major;
сигнал[num]=(minor+minor2)*(minor==minor2);
закрытие_против_тренда[num]=направление[num]*закрыть_против_тренда;
сигнал_закрытия[num]=major2*закрыть_по_сигналу;
сигнал_закрытия2[num]=major3*закрыть_по_сигналу;

// направление[num]=(major+ major2+BBSF_chart_trend);
// сигнал[num]=(major+minor)*(major==minor);
// закрытие_против_тренда[num]=направление[num]*закрыть_против_тренда;
// сигнал_закрытия[num]=(minor2)*закрыть_по_сигналу;


что бы между ними можно было переключаться?
Администратор запретил публиковать записи гостям.

BasketBull11_4 21 Янв 2017 11:47 #1555

  • Yuritch
  • Yuritch аватар
  • Вне сайта
  • Администратор
  • Сообщений: 171
  • Спасибо получено: 181
  • Репутация: 20
The_Siberian пишет:
Юрич, добра тебе!


тут один мысля посИтил...


а есть ли вариант, закейсовать, а не перекидывать // условия управления


направление[num]=major;
сигнал[num]=(minor+minor2)*(minor==minor2);
закрытие_против_тренда[num]=направление[num]*закрыть_против_тренда;
сигнал_закрытия[num]=major2*закрыть_по_сигналу;
сигнал_закрытия2[num]=major3*закрыть_по_сигналу;

// направление[num]=(major+ major2+BBSF_chart_trend);
// сигнал[num]=(major+minor)*(major==minor);
// закрытие_против_тренда[num]=направление[num]*закрыть_против_тренда;
// сигнал_закрытия[num]=(minor2)*закрыть_по_сигналу;


что бы между ними можно было переключаться?
Попробуй, все в твоих руках. Я, признаться, все реже в код ББ заглядываю - торгую руками, все, что мне нужно он делает.
Администратор запретил публиковать записи гостям.

BasketBull11_4 29 Янв 2017 21:22 #1587

  • The_Siberian
  • The_Siberian аватар
  • Вне сайта
  • Живу я здесь
  • Сообщений: 581
  • Спасибо получено: 181
  • Репутация: 16
Yuritch пишет:
The_Siberian пишет:
Юрич, добра тебе!


тут один мысля посИтил...


а есть ли вариант, закейсовать, а не перекидывать // условия управления


направление[num]=major;
сигнал[num]=(minor+minor2)*(minor==minor2);
закрытие_против_тренда[num]=направление[num]*закрыть_против_тренда;
сигнал_закрытия[num]=major2*закрыть_по_сигналу;
сигнал_закрытия2[num]=major3*закрыть_по_сигналу;

// направление[num]=(major+ major2+BBSF_chart_trend);
// сигнал[num]=(major+minor)*(major==minor);
// закрытие_против_тренда[num]=направление[num]*закрыть_против_тренда;
// сигнал_закрытия[num]=(minor2)*закрыть_по_сигналу;


что бы между ними можно было переключаться?
Попробуй, все в твоих руках. Я, признаться, все реже в код ББ заглядываю - торгую руками, все, что мне нужно он делает.

Юрич, все получилось! :) Выложу в следующем моде
Администратор запретил публиковать записи гостям.
Спасибо сказали: Yuritch
Модераторы: Yuritch, SU
Рейтинг@Mail.ru Яндекс.Метрика Политика конфиденциальности