Группа "Стол заказов MQL"

Рейтинг 1445



РЕКОМЕНДУЮ



Доработать советник усреднитель очень интересный как по мне

Здравствуйте уважаемые! Есть просьба посмотреть и попробовать доработать советник усреднитель он работает по стандартным индикаторам MT. Суть в том что когда цена идет не туда советник открывает ордер в противоположную сторону, можно ли как то сделать чтобы ограничить это число ордеров, может поставить мартин? Еше не плохо было бы добавить трал с шагом который можно выбирать и может быть сетку из отложек. Суть в том сто входы у него очень хорошие в итоге ситуация идет туда куда надо, но бывает что и наоборот. Просьба ограничить открытие число ордеров усреднения, добавить тралл. Еше если не трудно можно ли добафить обычную машку чтобы по ней фильтровался тренд, то есть свое рода фильтр для открытия сделок. Вот в принципе и все, заранее спасибо…

mk.mq4 (16 Kb)
  • 0
  • Просмотров: 1506
  • 27 августа 2019, 09:50
  • kostya010
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
Следующая запись в группе  
Переименование линий
25 августа 2019
27 августа 2019

Комментарии (20)

+
0
могу написать усреднитель по вашему тз с нуля, но с поручителем. и еще подробные скрины с описанием приложите
avatar

  29  AM2 Сообщений: 9941 - Андрей

  • 27 августа 2019, 17:53
+
0
Здравствуйте, этот советник и есть усреднитель.

По поводу тз хорошо порпобую объяснить (просьба сильно не пинать только начинаю во все вникать)

Давайте оставим принцип входа с вышевыложеного советника

но,
1. Добавим треддовую машку если тренд вверх не открывать сел и наоборот если вниз не открывать бай
скрин 1


2.Сделать чтобы был мартин, тоесть сейчас лот 0.01 всегда сделать коэффициент увеличения

3. На скрине видно что сов поставил 3 лота, если получится регулировать эту величину например чтобы он поставил 1 и ждал благоприятного момента для закрытия например, я понимаю но что это будет пересидка, но по моим наблюдением цена возвратится всегда в нужную сторону.

4. Можно ли сделать сопровождение ордеров например трал
avatar

  3  kostya010 Автор Сообщений: 11

  • 28 августа 2019, 09:53
+
0
По поводу поручителя, не знаю я тут только не давно, ПОРУЧИТЕСЬ ПОЖАЛУЙСТА КТО НИБУДЬ, В ДОЛГУ НЕ ОСТАНУСЬ, ДОБРО ВСЕГДА ВОЗВРАШАЕТСЯ ТОМУ КТО ЕГО ДЕЛАЕТ)
avatar

  3  kostya010 Автор Сообщений: 11

  • 28 августа 2019, 09:54
+
0
Открыл советник посмотреть:
extern double Lot = 0.01; // Количество лотов:D 
Задумался*shock* 
avatar

  5  39mail Сообщений: 27 - fenix74

  • 27 августа 2019, 20:28
+
0
Здравствуйте Андрей! Спасибо что хоть посмотрели вы попробуйте его в тестере погонять, хотя это конечно не сильный показатель. вот с 1 июня по сегодня. Количество лотов это собственно лот.

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


параметры


Редактирован: 28 августа 2019, 09:26
avatar

  3  kostya010 Автор Сообщений: 11

  • 28 августа 2019, 09:25
+
0
Всем добрый день. Различные усреднители мне тоже интересны. Поэтому выступаю поручителем. Но вместо трала, прошу вставить функцию БУ для всех открытых ордеров. В принципе сов противотрендовый и использование трала мне представляется затруднительным.
avatar

  9  GAWroch Сообщений: 35 - Вячеслав

  • 29 августа 2019, 08:28
+
0
Спасибо большое!!!
avatar

  3  kostya010 Автор Сообщений: 11

  • 29 августа 2019, 09:03
+
0
ЭТО ПО ТРЕНДУ ЧУТ ПЕРЕДЕЛАЛ НО ТЕЙК ПРОФИТ НЕ СМОГ

//+------------------------------------------------------------------+
//| |
//| MK |
//| |
//+------------------------------------------------------------------+
#property copyright «mk»
#property link ""
#property version «1.00»
#property strict

extern int H = 24; //Кол-во свечей в зоне
extern int k = 50;
extern int TakeProfit = 40;
extern double Lot = 0.01; // Количество лотов
extern int Magic = 180117; // Меджик советника
datetime StartTime = 0;
int aticket;
bool IsTrade = false;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if (StartTime != Time[0])
{
//GetCloseOrder();
StartTime = Time[0];
IsTrade = true;
}
if (IsTrade && MarginCheck(Lot))
{
int ords = 0;
double Sum = 0;
double takeS = NormalizeDouble(Bid — TakeProfit*Point, Digits);
double takeB = NormalizeDouble(Ask + TakeProfit*Point, Digits);
if (Open[0] >= (High[iHighest(NULL,0,MODE_HIGH,H,2)] + k*Point) && Open[0] > Open[1])
{
if (OrdersTotal()>0)
{
for(int i = 1; i <= OrdersTotal(); i++)
{
OrderSelect(i-1,SELECT_BY_POS, MODE_TRADES);
if ((OrderSymbol() == Symbol()) && (OrderType() == OP_BUY) && (OrderMagicNumber() == Magic))
{
Sum = Sum + OrderOpenPrice();
ords++;
}
}
takeS = (Sum + Bid)/(ords+1) — (TakeProfit*Point);
}
int tick = OrderSend (Symbol(), OP_BUY, Lot, Bid, 3, 0, 0, "", Magic, 0, clrNONE);
if (tick < 0) Print(«OrderSend завершилась с ошибкой #»,GetLastError());
else
{
for (int i = 1; i <= OrdersTotal(); i++)
{
bool ticket = OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES);
if(ticket == false) Print («Ошибка при выборе ордера»);
if ((OrderSymbol() == Symbol()) && (OrderType() == OP_SELL) && (OrderMagicNumber() == Magic))
{
OrderModify(OrderTicket(),OrderOpenPrice(),0,NormalizeDouble(takeS,Digits),0,clrRed);
}
}
}
IsTrade = false;
}
if (Open[0] <= (Low[iLowest(NULL,0,MODE_LOW,H,2)] — k*Point) && Open[0] < Open[1])
{
if (OrdersTotal()>0)
{
for(int i = 1; i <= OrdersTotal(); i++)
{
OrderSelect(i-1,SELECT_BY_POS, MODE_TRADES);
if ((OrderSymbol() == Symbol()) && (OrderType() == OP_SELL) && (OrderMagicNumber() == Magic))
{
Sum = Sum + OrderOpenPrice();
Print («Текущая сумма равна » + DoubleToString(Sum,5));
ords++;
}
}
takeB = (Sum + Ask)/(ords+1) + (TakeProfit*Point);
}
int tick = OrderSend (Symbol(), OP_SELL, Lot, Ask, 3, 0, 0, "", Magic, 0, clrNONE);
if (tick < 0) Print(«OrderSend завершилась с ошибкой #»,GetLastError());
else
{
for (int i = 1; i <= OrdersTotal(); i++)
{
bool ticket = OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES);
if(ticket == false) Print («Ошибка при выборе ордера»);
if ((OrderSymbol() == Symbol()) && (OrderType() == OP_BUY) && (OrderMagicNumber() == Magic))
{
OrderModify(OrderTicket(),OrderOpenPrice(),0,NormalizeDouble(takeB,Digits),0,clrBlue);
}
}
}
IsTrade = false;
}
}
}

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

void comment(int n,color c,string s0="",string s1="",string s2="",string s3="",string s4="",string s5="",
string s6="",string s7="",string s8="",string s9="",string s10="",string s11="",
string s12="",string s13="",string s14="",string s15="",string s16="",string s17="",
string s18="",string s19="")
{
string r=s0+s1+s2+s3+s4+s5+s6+s7+s8+s9+s10+s11+s12+s13+s14+s15+s16+s17+s18+s19;
string name=«Stata»+IntegerToString(n);//_comment-имя советника или любой идентификатор для маркировки «своих» объектов
int y=15+n*15;
int x=5;
if(ObjectFind(name)<0) ObjectCreate(name,OBJ_LABEL,0,0,0);
ObjectSet(name,OBJPROP_XDISTANCE,x);
ObjectSet(name,OBJPROP_YDISTANCE,y);
ObjectSetText(name,r,9,«Arial black»,c);
}

//----------------------------------------------------------------------
//------------------------------------------------------------------------

bool MarginCheck(double LotX)
{
if(LotX*MarketInfo(Symbol(),MODE_MARGINREQUIRED)<=AccountFreeMargin()) return(True);
else return (False);
}

//-------------------------------------------------------------------------
//-----------------------------------------------------------------------------

void GetCloseOrder()
{
for (int i=1; i<=OrdersTotal(); i++)
{
if (OrderSelect(i-1,SELECT_BY_POS) == true)
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if (OrderType() == 0) bool Ans = OrderClose(OrderTicket(), OrderLots(), Bid, 3, clrBlue);
if (OrderType() == 1) bool Ans = OrderClose(OrderTicket(), OrderLots(), Ask, 3, clrRed);
}
}
}
}
avatar

  8  el12EL12 Сообщений: 56

  • 29 августа 2019, 15:17
+
0
что то не так не компилится(


avatar

  3  kostya010 Автор Сообщений: 11

  • 29 августа 2019, 16:53
+
0
на 2-е
avatar

  29  AM2 Сообщений: 9941 - Андрей

  • 29 августа 2019, 19:04
+
+1
Давайте оставим принцип входа с вышевыложеного советника


вы в курсе принципа открытия в исходнике? он противоречит вашему. если сделать так как вы просите не откроет ни одной сделки.

вот я переписал исходник на свой лад:



вот работа исходника:



от этого кода уже можно плясать дальше. смотрите и описывайте подробно необходимые входы выходы.

к основе добавил мартин, контроль за числом поз, трал.

www.opentraders.ru/downloads/2401/

avatar

  29  AM2 Сообщений: 9941 - Андрей

  • 30 августа 2019, 09:20
+
0
Андрей спасибо Вам большое Вы настоящий мастер своего дела, я думаю стоит еше добавить безубыток. По поводу фильтра я так понимаю он для усреднителя не имеет смысла. Просто бывает что тренд долго не возврашяется для перекрытия позиций, даже не знаю как это побороть… Давайте остановимся на безубытке и времени работы
avatar

  3  kostya010 Автор Сообщений: 11

  • 30 августа 2019, 11:20
+
0
Можно ее например если тренд пошел не туда открыть сетку в противоположном направлении
avatar

  3  kostya010 Автор Сообщений: 11

  • 30 августа 2019, 11:34
+
0
Давайте подумаем вместе ну неужели плохой сов? давайте совместно доработаем и будет кассный бот. Как можно в усреднители еше страховать входы если пошел тренд не туда?
avatar

  3  kostya010 Автор Сообщений: 11

  • 30 августа 2019, 12:07
+
0
добавление каких то других плюшек ник чему не приведет.
бу и время добавил: www.opentraders.ru/downloads/2401/
avatar

  29  AM2 Сообщений: 9941 - Андрей

  • 30 августа 2019, 12:10
+
0
спасибо!
avatar

  3  kostya010 Автор Сообщений: 11

  • 30 августа 2019, 13:40
+
+1
ВОТ ПО ТРЕНДУ ЧУТ ПЕРЕДЕЛАЛ НО ТЕЙК ПРОФИТ ОПЯТ НЕ СМОГ

if(Open[0]<=Low[iLowest(NULL,0,MODE_LOW,Count,2)]-Delta*Point && Open[0]<Open[1]) PutOrder(1,Bid);
if(Open[0]>=High[iHighest(NULL,0,MODE_HIGH,Count,2)]+Delta*Point && Open[0]>Open[1]) PutOrder(0,Ask);

ТУТ АСК И БИД ИЗМЕН МЕСТАМИ И ЦИФРЫ

ПУНКТ 232 МЕСТА ОП БАЙ МЕНЯЛ ОП СЕЛ
ПУНКТ 241 МЕСТА ОП СЕЛ МЕНЯЛ ОП БЙ

МУВИНГИ ТАК ДЛЯ ОРИЕНТИРА ЕСЛИ ИГРАТСЯ КОДОМИ ЧТО ТО ПОЛУЧАЕТСЯ
Редактирован: 30 августа 2019, 18:18
avatar

  8  el12EL12 Сообщений: 56

  • 30 августа 2019, 18:15
+
0
Хорошая попытка, но на одних мувингах сколько уже сделано советников, есть прибыльные, но мувинги же запаздывают. Мувинги хороши для подтверждения сигналов другими индюками, а вот если ошиблись со входом или попали на новости, тогда уже должно включаться усреднение и вывод сделки в б/у!!!
avatar

  5  39mail Сообщений: 27 - fenix74

  • 9 сентября 2019, 17:42
+
0
На реале кто то пробовал уже этот сов?
avatar

  3  alexzh16 Сообщений: 25

  • 30 августа 2019, 22:18
+
0
У него тестер полностью совпадает с реалом
avatar

  3  kostya010 Автор Сообщений: 11

  • 20 сентября 2019, 14:04

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари