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

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

kot287

Активный участник
Прошу помощи!:please:Необходимо,чтоб линия Т1(datetime) передвигалась на место пересечения 2х МА.
 

Вложения

sdsn

Местный житель
скажи пожалуйста по какой цене советник с работай по одному или трем индикаторам он как бы уже есть нужно доделать
 

adres13

Местный житель
Прошу немного переделать эти 2 скрипта.
Нужно, чтобы открытие ордера происходило на закрытии свечи именно после пробоя. То есть чтобы цена закрытия пересекла линию. И только тогда открывался ордер.
Вот описание их работы в настоящее время (взято со стороннего ресурса, без изменений):
TrendLine BreakIn – торговый скрипт, работает на отскок от трендовой линии. Устанавливая его на график, я указываю трендовую линию, по которой скрипт должен работать. Указав направление открытия, размер лота и стопы, я свободно могу отлучиться от экрана монитора. Скрипт сам откроет торговую позицию в момент, когда цена коснется указанной трендовой линии.
5m_YNNgcO50.jpg
Рано или поздно каждому тренду приходит конец, и цена пробивает трендовую линию, от которой могла несколько раз отскочить. На этот случай у меня в загашнике есть скрипт с названием TrendLine BreakOut, который открывает торговую позицию на пробой трендовой линии.
Q8sPoUI-N7k.jpg
Имея под рукой эти 2 полезных скрипта, Вы будете пропускать меньше хороших торговых сигналов, тем самый постепенно увеличивать свой депозит, и пополнять торговую историю очередным профитом.

Настройки скриптов TrendLine:

Line_Name – имя рабочей линии
Type – тип сделки (0 – buy, 1- Sell)
Shift – отступ от линии для открытия позиции
StopLoss – размер стопа
TakeProfit – размер профита
Lot – размет торгового лота
MagicNumber – уникальный номер скрипта
сomment – комментарий к ордеру
 

Вложения

Последнее редактирование:

adres13

Местный житель
Я не могу разобраться с этим скриптом. Не пойму как всё-таки он открывает, на пробое или нет. На пробое, по идее, должен открывать TrendLine BreakOut. Но он не открывает ордер. В журнале пишет это
2014.04.11 12:54:49.531 '9513086': order buy 0.10 GBPUSD opening at 0.00000 sl: 1.67432 tp: 1.68032 failed [Invalid S/L or T/P]
Настройку Shift не менял. TP и SL тоже не трогал (30 пунктов). Может быть он только для 4х знака. Если так, то сделайте, пожалуйста, для 5ти знака.
 
Последнее редактирование:

retrik

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

IYG

Местный знаток
Доброго здоровья! Уважаемые гуру просьба соединить стандартные индикаторы Быки и Медведи в один флакон(подвал). Во внешние настройки вынести период быков и период медведей(если возможно) и уровни пробития, и прикрутить алерт на пробитие уровня с окошечком (пара,ТФ, пробит такой-то уровень). Если таковой существует прошу ткнуть.
Заспасиблю автора!:)
 

Вложения

  • eurusdm5.png
    eurusdm5.png
    30,3 КБ · Просмотры: 92

trium

Местный житель
Пожалуйста подправьте индикатор так, чтобы он не менял ширину выставленных линий!
Спасибо. ;)
 

Вложения

Joker1394

Активный участник
Всем доброго дня.Ребят кто сможет помочь есть такой индикатор истощения рынка IDM?автор пишет так....Индикатор показывает значение со смещением на 1 бар назад (эта особенность связана с формулой, используемой в индикаторе, а не с недостатком его кода)
Но у меня на графике он запаздывает то на 3 то на 6 баров на разных периодах..не могли бы Вы посмотреть в чем дело и помочь сделать так как он и должен работать..Да исходника правда нет( только ex4 )
 

Вложения

  • IDM.ex4
    IDM.ex4
    4,7 КБ · Просмотры: 30

Dmitrii1

Гуру форума
Всем доброго дня.Ребят кто сможет помочь есть такой индикатор истощения рынка IDM?автор пишет так....Индикатор показывает значение со смещением на 1 бар назад (эта особенность связана с формулой, используемой в индикаторе, а не с недостатком его кода)
Но у меня на графике он запаздывает то на 3 то на 6 баров на разных периодах..не могли бы Вы посмотреть в чем дело и помочь сделать так как он и должен работать..Да исходника правда нет( только ex4 )
Исходник.
 

Вложения

  • IDM~.mq4
    IDM~.mq4
    1,8 КБ · Просмотры: 59

Vitas42

Активный участник
Доброго времени суток скажите пож. а есть какая то инструкция по изменению скажем основных ошибок в новом билде? спс.
пр. было так (input) а стало так (.......) приблизительно?

http://articles.mql4.com/ru/1152?source=metaeditor5_article
http://www.expforex.com/publ/novyj_terminal_mt4_errors_and_warnings_expforex_com_ea/6-1-0-124
 

zhserg

Местный знаток
здравствуйте. Очень прошу помогите добавить в индикатор доп настройку, ОЧЕНЬ, ОЧЕНЬ надо.
Индюк показывает эквити по нескольким валютным парам.
Нужно добавить чтобы можно было изменять лотность валютных пар, для каждой отдельно
Допустим EUR/USD 1.1 USD/CHF 0.8 .....


_http://yadi.sk/d/GTobU_hoM944a - индюк тут
ну или код индюка:

//+------------------------------------------------------------------+
//| Equity_virtual1.mq4 |
//| Copyright © 2009, Xupypr |
//| _http://www.mql4.com/ru/users/Xupypr |
//| Версия от 01.04.2009 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Xupypr"
#property link _http://www.mql4.com/ru/users/Xupypr

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Aqua
#property indicator_color3 Yellow
#property indicator_width1 2
#property indicator_width2 1
#property indicator_width3 1
#property indicator_level1 0

extern datetime Time_Open=D'2009.08.01 00:00'; // Время одновременного открытия позиций
extern datetime Time_Close=D'2019.02.02 00:00'; // Время одновременного закрытия позиций
extern bool General_Line=false; // Использовать граф.объекты - линии для установки времени открытия/закрытия
extern double Default_Lot=0.1; // Размер лота по умолчанию, если он не указан дополнительно в перечне символов
//--- Перечни символов, которые условно открываются в buy или в sell
//--- "На хвост" символу может дописываться размер лота
//--- Если размер лота не дописан, применяется лот по умолчанию
//--- Количество символов в пакете произвольное
extern string Buy_Symbols="GBPUSD EURUSD USDCAD USDCHF";
extern string Sell_Symbols="";
extern bool Show_Total=true; // Отображать суммарное эквити
extern bool Show_Buy=false; // Отображать эквити позиций buy
extern bool Show_Sell=false; // Отображать эквити позиций sell

int Total;
bool First;
double TotalEquity[],BuyEquity[],SellEquity[];
string ShortName;

int OpenBar; // номер бара открытия
int CloseBar; // Номер бара закрытия
int Type[]; // тип операции
string Instrument[]; // инструмент
double Lots[]; // количество лотов
double OpenPrice[]; // цена открытия

//+----------------------------------------------------------------------------+
//| Custom indicator initialization function |
//+----------------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0,TotalEquity);
SetIndexLabel(0,"Total");
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(1,BuyEquity);
SetIndexLabel(1,"Buy "+Buy_Symbols);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(2,SellEquity);
SetIndexLabel(2,"Sell "+Sell_Symbols);
SetIndexStyle(2,DRAW_LINE);
ShortName="Equity";
if (Show_Total) ShortName=StringConcatenate(ShortName," Total");
if (Show_Buy) ShortName=StringConcatenate(ShortName," Buy");
if (Show_Sell) ShortName=StringConcatenate(ShortName," Sell");
IndicatorShortName(ShortName);
IndicatorDigits(2);
First=true;
return(0);
}
//+----------------------------------------------------------------------------+
//| Custom indicator iteration function |
//+----------------------------------------------------------------------------+
int start()
{
static string minfosymbols="";
double buyprofitloss,sellprofitloss,spread,lotsize;
int bar,i,j;
/*
if (!IsConnected())
{
Print("Связь с сервером отсутствует или прервана");
return(0);
}
*/
if (General_Line)
{
if (ObjectFind("openall")==-1) ObjectCreate("openall",OBJ_VLINE,0,Time_Open,0);
if (ObjectFind("closeall")==-1) ObjectCreate("closeall",OBJ_VLINE,0,Time_Close,0);
if (ObjectGet("openall",OBJPROP_TIME1)!=Time_Open || ObjectGet("closeall",OBJPROP_TIME1)!=Time_Close)
{
First=true;
Time_Open=ObjectGet("openall",OBJPROP_TIME1);
Time_Close=ObjectGet("closeall",OBJPROP_TIME1);
ArrayInitialize(TotalEquity,EMPTY_VALUE);
ArrayInitialize(BuyEquity,EMPTY_VALUE);
ArrayInitialize(SellEquity,EMPTY_VALUE);
}
}
OpenBar=iBarShift(NULL,0,Time_Open);
CloseBar=iBarShift(NULL,0,Time_Close,true);
if (First)
{
First=false;
Total=0;
SetOrder(Buy_Symbols,OP_BUY);
SetOrder(Sell_Symbols,OP_SELL);
if (Total==0)
{
Alert("Ни одного символа не задано!");
return(0);
}
}
else
{
if (Total==0) return(0);
if (CloseBar>=0) return(0);
else
{
OpenBar=1;
CloseBar=0;
}
}
for (i=OpenBar;i>=CloseBar;i--)
{
buyprofitloss=0.0;
sellprofitloss=0.0;
for (j=0;j<Total;j++)
{
if (MarketInfo(Instrument[j],MODE_POINT)==0)
{
if (StringFind(minfosymbols,Instrument[j])==-1)
{
Alert("В обзоре рынка не хватает "+Instrument[j]);
minfosymbols=StringConcatenate(minfosymbols," ",Instrument[j]);
}
continue;
}
bar=iBarShift(Instrument[j],0,Time);
lotsize=LotSize(Instrument[j],Time);
if (Type[j]==OP_BUY) buyprofitloss+=(iClose(Instrument[j],0,bar)-OpenPrice[j])*Lots[j]*lotsize;
else
{
spread=MarketInfo(Instrument[j],MODE_POINT)*MarketInfo(Instrument[j],MODE_SPREAD);
//sellprofitloss+=(OpenPrice[j]-iClose(Instrument[j],0,bar)-spread)*Lots[j]*lotsize;
sellprofitloss+=(OpenPrice[j]-iClose(Instrument[j],0,bar))*Lots[j]*lotsize;
}
}
if (Show_Total) TotalEquity=NormalizeDouble(buyprofitloss+sellprofitloss,2);
if (Show_Buy) BuyEquity=NormalizeDouble(buyprofitloss,2);
if (Show_Sell) SellEquity=NormalizeDouble(sellprofitloss,2);
}
return(0);
}
//+----------------------------------------------------------------------------+
//| Определение размера контракта |
//+----------------------------------------------------------------------------+
double LotSize(string symbol, datetime tbar)
{
double size;
string BQ,currency=AccountCurrency();
int raczet = MarketInfo(symbol,MODE_PROFITCALCMODE);
switch (raczet)
{
case 0:
{
int sbar=iBarShift(symbol,0,tbar);
size=MarketInfo(symbol,MODE_LOTSIZE);
if (StringSubstr(symbol,3,3)=="USD") break;
if (StringSubstr(symbol,0,3)=="USD") size=size/iClose(symbol,0,sbar);
else
{
BQ=StringSubstr(symbol,0,3)+"USD";
if (iClose(BQ,0,0)==0) BQ="USD"+StringSubstr(symbol,0,3);
if (iClose(BQ,0,0)==0) break;
int BQbar=iBarShift(BQ,0,tbar);
if (StringSubstr(BQ,0,3)=="USD") size=size/iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
else size=size*iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
}
} break;
case 1: size=MarketInfo(symbol,MODE_LOTSIZE); break;
case 2: size=MarketInfo(symbol,MODE_TICKVALUE)/MarketInfo(symbol,MODE_TICKSIZE);
}
if (currency!="USD")
{
BQ=currency+"USD";
if (iClose(BQ,0,0)==0)
{
BQ="USD"+currency;
size*=iClose(BQ,0,iBarShift(BQ,0,tbar));
}
else size/=iClose(BQ,0,iBarShift(BQ,0,tbar));
}
return(size);
}
//+----------------------------------------------------------------------------+
//| Установка параметров ордера |
//+----------------------------------------------------------------------------+
void SetOrder(string name, int cmd)
{
int length,pos,end;

length=StringLen(name);
pos=0;
while (pos<length)
{
Total++;
ArrayResize(Type,Total);
ArrayResize(Instrument,Total);
ArrayResize(Lots,Total);
ArrayResize(OpenPrice,Total);
Type[Total-1]=cmd;
Instrument[Total-1]=StringSubstr(name,pos,6);
pos+=6;
if (StringGetChar(name,pos)==32 || (length-1)<pos) Lots[Total-1]=Default_Lot;
else
{
end=0;
while(StringGetChar(name,pos+end)!=32)
{
if ((length-1)<pos+end) break;
end++;
}
Lots[Total-1]=StrToDouble(StringSubstr(name,pos,pos+end));
pos+=end;
}
pos++;
OpenPrice[Total-1]=iOpen(Instrument[Total-1],0,iBarShift(Instrument[Total-1],0,Time_Open));
//if (cmd==OP_BUY) OpenPrice[Total-1]+=MarketInfo(Instrument[Total-1],MODE_POINT)*MarketInfo(Instrument[Total-1],MODE_SPREAD);
}
}
//+----------------------------------------------------------------------------+


Цитата из кода индикатора :
//--- "На хвост" символу может дописываться размер лота
//--- Если размер лота не дописан, применяется лот по умолчанию
 

ZADEL_21

Активный участник
Всем привет!

Уважаемые программисты!

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


Стрелочки лучше сделать в подвале. Ну или где вам удобнее.

 

Вложения

Последнее редактирование:

maximuson

Новичок форума
Есть такой индюк MA Chanels FIBO он рисует от МА допустим 200 фибо уровни в %, пытаюсь доработать чтоб выводил ценовые уровни, разрабатывал на золоте все получилось, но когда установил на 4 и 5 знаковый инструмент, выводит показатели 2 знака после запятой, если есть возможность зделать или пояснить чтоб выводил все знаки после запятой.
 

Вложения

  • xauusdvm5.png
    xauusdvm5.png
    65,4 КБ · Просмотры: 151
  • MA Chanels FIBO.mq4
    MA Chanels FIBO.mq4
    8,6 КБ · Просмотры: 53
Последнее редактирование:

zhserg

Местный знаток
Есть такой индюк MA Chanels FIBO он рисует от МА допустим 200 фибо уровни в %, пытаюсь доработать чтоб выводил ценовые уровни, разрабатывал на золоте все получилось, но когда установил на 4 и 5 знаковый инструмент, выводит показатели 2 знака после запятой, если есть возможность зделать или пояснить чтоб выводил все знаки после запятой.
Строки типа
PHP:
   txt=(DoubleToStr(ExtMapBuffer1[0], 2));
исправь на
PHP:
   txt=(DoubleToStr(ExtMapBuffer1[0], Digits));
 

maximuson

Новичок форума
Есть такой индюк MA Chanels FIBO он рисует от МА допустим 200 фибо уровни в %, пытаюсь доработать чтоб выводил ценовые уровни, разрабатывал на золоте все получилось, но когда установил на 4 и 5 знаковый инструмент, выводит показатели 2 знака после запятой, если есть возможность поясните почему на золоте которое тоже работает на 5 знаков после запятой все отлично а там никак)

Спасибо огр zhserg. Сам разобрался)
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.

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

Верх