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

Genry_05

Отдыхает
спасибо. ощущение, что перерисовка должна уменьшиться. почему то в тестере не тестируется индюк

Странно :disappointed: Посмотрел в тестере на м15: цена бежит, линии - рисуются, сигналы шлепаются. Скрин тестера делать лень ;)



Это все, конечно, замечательно, но предоставь код в формате mq4.

Не вопрос :)
 

Вложения

  • DCE_BB_v3gm.mq4
    27,5 КБ · Просмотры: 236
Последнее редактирование:

Freeze7

Прохожий
Добрый день! Подскажите по функции определения индекса бара, с которого необходимо производить перерасчет индикатора. Нужен перерасчет нулевого и первого бара.

int GetRecalcIndex(int& total, const int ratesTotal, const int prevCalculated)

{

total = ratesTotal - 1;

if (i_indBarsCount > 0 && i_indBarsCount < total)

total = MathMin(i_indBarsCount, total);

if (prevCalculated < ratesTotal - 1)

{

BuffersInitializeAll();

return (total);

}

return (MathMin(ratesTotal - prevCalculated, total));
 

GOLDNG

Интересующийся
Помогите подправить простой 3МА

Привет, люди, помогите подправить простой 3МА, он иногда сра3у несколько ордеров открывает по паре, иногда вообще не открывает хоть и есть сигнал,мохно его сделать бе3 SL/TР-сам буду,а просто локирующим? спасибо

//+------------------------------------------------------------------+
//| простой советник.mq4 |
//| Copyright © 2011, Хлыстов Владимир |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011,"
#property link "[email protected]"
//--------------------------------------------------------------------
extern int period_1 = 5,
period_2 = 30,
period_3 = 100,
stoploss = 0,
takeprofit = 0;
extern double LOT = 0.1;
extern bool CloseRevers = true;
//--------------------------------------------------------------------
int TimeBar;
//--------------------------------------------------------------------
int start()
{
if (TimeBar==Time[0]) return(0);

double MA10 = iMA(NULL,0,period_1,0,MODE_EMA,PRICE_OPEN,0);
double MA11 = iMA(NULL,0,period_1,0,MODE_EMA,PRICE_OPEN,1);
double MA20 = iMA(NULL,0,period_2,0,MODE_LWMA,PRICE_OPEN,0);
double MA21 = iMA(NULL,0,period_2,0,MODE_LWMA,PRICE_OPEN,1);
double MA3 = iMA(NULL,0,period_3,0,MODE_LWMA,PRICE_OPEN,0);

double SL,TP;
if (MA10>MA20&&MA11<MA21&&MA20>MA3)
{
TimeBar=Time[0];
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Bid - stoploss*Point,Digits); else SL = 0;
if (CloseRevers) CLOSEORDER(OP_SELL);
OrderSend(Symbol(),OP_BUY, LOT,NormalizeDouble(Ask,Digits),2,SL,TP,"простой советник",123,3);
}
if (MA10<MA20&&MA11>MA21&&MA20<MA3)
{
TimeBar=Time[0];
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Ask + stoploss*Point,Digits); else SL = 0;
if (CloseRevers) CLOSEORDER(OP_BUY);
OrderSend(Symbol(),OP_SELL,LOT,NormalizeDouble(Bid,Digits),2,SL,TP,"простой советник",123,3);
}
return(0);
}
//--------------------------------------------------------------------
void CLOSEORDER(int ord)
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol() && OrderMagicNumber()==123)
{
if (OrderType()==OP_BUY && ord==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3,CLR_NONE);
if (OrderType()==OP_SELL && ord==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,CLR_NONE);
}
}
}
}
//--------------------------------------------------------------------
 
Последнее редактирование модератором:

serg1984g

Новичок форума
пройденный этап. открывает сразу несколько ордеров потому что машки скачут вместе с ценой. надо добавлять переменную (время после открытия ордера чтоб еще один ордер не открылся).
а не открываются ордера потому что иногда цена уже далеко от машки (длинный бар) а потом уже откываться смысла нет после таких движений.
 

GOLDNG

Интересующийся
я кое что и3менил,но локи не 3наю как сделать(( и еще он обьем сам поставил не 0,01 а 0,1((

//+------------------------------------------------------------------+
//| простой советник.mq4 |
//| Copyright © 2011, Хлыстов Владимир |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, "
#property link "[email protected]"
//--------------------------------------------------------------------
extern int period_1 = 4,
period_2 = 21,
period_3 = 504,
stoploss = 0,
takeprofit = 0;
extern double LOT = 0.01;
extern bool CloseRevers = true;
//--------------------------------------------------------------------
int TimeBar;
//--------------------------------------------------------------------
int start()
{
if (TimeBar==Time[0]) return(0);

double MA10 = iMA(NULL,0,period_1,0,MODE_EMA,PRICE_OPEN,0);
double MA11 = iMA(NULL,0,period_1,0,MODE_EMA,PRICE_OPEN,1);
double MA20 = iMA(NULL,0,period_2,0,MODE_EMA,PRICE_OPEN,0);
double MA21 = iMA(NULL,0,period_2,0,MODE_EMA,PRICE_OPEN,1);
double MA3 = iMA(NULL,0,period_3,0,MODE_EMA,PRICE_OPEN,0);

double SL,TP;
if (MA10>MA20&&MA11<MA21&&MA20>MA3)
{
TimeBar=Time[0];
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Bid - stoploss*Point,Digits); else SL = 0;
if (CloseRevers) CLOSEORDER(OP_SELL);
OrderSend(Symbol(),OP_BUY, LOT,NormalizeDouble(Ask,Digits),1,SL,TP,"простой советник",0,3);
}
if (MA10<MA20&&MA11>MA21&&MA20<MA3)
{
TimeBar=Time[0];
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Ask + stoploss*Point,Digits); else SL = 0;
if (CloseRevers) CLOSEORDER(OP_BUY);
OrderSend(Symbol(),OP_SELL,LOT,NormalizeDouble(Bid,Digits),1,SL,TP,"простой советник",0,3);
}
return(0);
}
//--------------------------------------------------------------------
void CLOSEORDER(int ord)
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol() && OrderMagicNumber()==123)
{
if (OrderType()==OP_BUY && ord==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),1,CLR_NONE);
if (OrderType()==OP_SELL && ord==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),1,CLR_NONE);
}
}
}
}
//--------------------------------------------------------------------
 
Последнее редактирование модератором:

malojorsk

Новичок форума
Выведете пожалуйста в настройки размер высоты блока, как я понял там процент от окна графика
 

Вложения

  • 222.png
    222.png
    21,1 КБ · Просмотры: 314
  • subchart.mq4
    8,2 КБ · Просмотры: 31
Последнее редактирование:

unreal-1980

Активный участник
Нужна помощь ваша

Добрый день коллеги!

Очень прошу помощи, помогите пожалуйста кто может вставить звуковой аллерт с окошком с названием пары при появление "ноги" индикатора и если не сложно его отключение в настройках индюка "true/false". Без вас не справлюсь к сожалению.
Буду очень благодарен.
 

Вложения

  • ZIG ZAG NRP.mq4
    2,4 КБ · Просмотры: 59

garry119

Гость
Странно :disappointed: Посмотрел в тестере на м15: цена бежит, линии - рисуются, сигналы шлепаются. Скрин тестера делать лень ;)





Не вопрос :)

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

garry119

Гость
люди добрые, сделайте, пожалуйста, этот индикатор двухцветным по слопе, чтобы менял цвет на изгибах
 

Вложения

  • BullsEye Forecaster v1 Alert MTF TT.mq4
    16 КБ · Просмотры: 56

Pilligrim90

Новичок форума
Просьба, из индикатора убрать все надписи (на скрине справа в подвале), только мешают.
 

Вложения

  • Bull-Beer_Spred.ex4
    21,1 КБ · Просмотры: 20
  • Bull-Beer_Spred.mq4
    7,8 КБ · Просмотры: 41
  • EURUSDH1.png
    EURUSDH1.png
    72,3 КБ · Просмотры: 349

garry119

Гость
Видишь что iBoss пишет, так что с истории сигнал не пойдёт, но сигналы отличаются у модифицированного с периодом 240 и оригинала жирные стрелки


))) мэтр кодирования cmillion что то накосячил в индюке и мэтр Младен это распознал)))
 

Вложения

  • Screenshot_91.png
    Screenshot_91.png
    30 КБ · Просмотры: 86
Последнее редактирование:

Strong_Tezis

Новичок форума
Здравствуйте. Прошу помогите пожалуйста добавить условие в код. (Насколько моих знаний хватило я подредактировал.)
Индикатор рисует линии по цене закрытия, а нужно добавить условие, рисовать только если предыдущая свеча была противоположной.
Т.е. только при смене направления(цвета) свечи,
рисовать линию закрытия только той свечи которая сменила направление.
Также "NumberOfBar" должна отвечать за количество показываемых линий.
p.s. Понимаю что возможно плохо описал, прилагаю картинку.
Oej4O71I.jpg
 

Вложения

  • --candles_m-Candles_m(X).mq4
    13,7 КБ · Просмотры: 44

loki177

Активный участник

Вложения

  • BullsEye Forecaster v1 Alert MTF TT 2c.mq4
    19,6 КБ · Просмотры: 93
Верх