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

druzhba78

Активный участник
Доработка советника Вектор

Здравствуйте ! Возможно ли изменить советник Вектор ? Давно уже тестирую этого зверя и, думаю, что он может неплохо зарабатывать ! Так как суть его работы в пробое канала, на котором выставляются отложки, то как раз данный канал и подводит ! В его настройках есть две данные: DeltaUp и DeltaDown, которые отвечают за ширину канала, и, если сделать определение канала автоматическим, то есть уверенность в хороших результатах !!! Да, и ещё, если бы сделать работу на пятизнаке без автоматического перевода на него (так понимаю без добавления нуля), было бы намного круче !!! С уважением, Роман !
 

Вложения

  • Советник Вектор.rar
    138,6 КБ · Просмотры: 135

jenzo

Местный знаток
Ребята помогите вывести настройки если есть?
 

Вложения

  • trend.mq4
    2,9 КБ · Просмотры: 103
Последнее редактирование модератором:

bleike

Новичок форума
мужики подкорректируйте индюка... он ставит круглые уровни на заданном расстоянии но вот если ставишь расстояние в 25 то он округляет до 20 а хотелось бы всё-таки 25 пунктов! вот собственно и всё)
 

Вложения

  • Grid Builder.mq4
    2,8 КБ · Просмотры: 64

стасс

Новичок форума
Ребята помогите исправить индикатор , что то не работает .
 

Вложения

  • MZZ2_pitch_b06_Betta_Graf_240_1440.mq4
    94,1 КБ · Просмотры: 85
  • MZZ2_pitch_b06_Betta_Graf_10080_43200.mq4
    94,1 КБ · Просмотры: 85

jenzo

Местный знаток
Ребята посмотрите, выдает одну ошибку.

К стати, если не трудно выведите настройки.
 

Вложения

  • FatCat~.mq4
    1,6 КБ · Просмотры: 64

tommy27

Гуру форума
Ребята посмотрите, выдает одну ошибку.

К стати, если не трудно выведите настройки.

Единственную значимую настройку вывел, по дефолту было = 14, сейчас = 10 :)

PHP:
extern int  PeriodRSI  = 10; //по умолчанию было = 14
extern bool SoundAlert = false;
 

Вложения

  • FatCat~.mq4
    1,7 КБ · Просмотры: 280
  • FatCat~.ex4
    9,4 КБ · Просмотры: 189
  • eurusd-m1-fxopen-investments-inc.png
    eurusd-m1-fxopen-investments-inc.png
    35,8 КБ · Просмотры: 531

tommy27

Гуру форума
Ребята помогите исправить индикатор , что то не работает .

Удалось оживить только этот скомпилив в старом билде, в новом слишком много ошибок, попробовал исправить не помогло, этот файл в новом билде работает только на м1-м5, наверно настройки надо под другие тф менять.. в общем чем смог:)
 

Вложения

  • MZZ2_pitch_b06_Betta_Graf_240_1440.ex4
    41,5 КБ · Просмотры: 78
  • eurusd-m1-fxopen-investments-inc-2.png
    eurusd-m1-fxopen-investments-inc-2.png
    31,1 КБ · Просмотры: 353

HEDIJS

Прохожий
Prosjba podlechitj , 27 boljachek vijevljajet .Spasibo.

//+------------------------------------------------------------------+
//| TriangularMA centered bands.mq4 |
//| mladen |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "mladen"
#property link "[email protected]"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Yellow
#property indicator_color2 DodgerBlue
#property indicator_color3 Red
#property indicator_style2 STYLE_DOT
#property indicator_style3 STYLE_DOT

//
//
//
//
//

extern string TimeFrame = "current time frame";
extern int HalfLength = 56;
extern int Price = PRICE_CLOSE;
extern double ATRMultiplier = 2.0;
extern int ATRPeriod = 100;
extern bool Interpolate = true;

extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsOnHighLow = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;

//
//
//
//
//

double buffer1[];
double buffer2[];
double buffer3[];
double trend[];

//
//
//
//
//

string indicatorFileName;
bool calculateValue;
bool returnBars;
int timeFrame;

int gi_PipsDecimal;

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//

int init()
{
IndicatorBuffers(4);
HalfLength=MathMax(HalfLength,1);
SetIndexBuffer(0,buffer1); SetIndexDrawBegin(0,HalfLength);
SetIndexBuffer(1,buffer2); SetIndexDrawBegin(1,HalfLength);
SetIndexBuffer(2,buffer3); SetIndexDrawBegin(2,HalfLength);
SetIndexBuffer(3,trend);

//
//
//
//
//

indicatorFileName = WindowExpertName();
returnBars = TimeFrame=="returnBars"; if (returnBars) return(0);
calculateValue = TimeFrame=="calculateValue"; if (calculateValue) return(0);
timeFrame = stringToTimeFrame(TimeFrame);

//
//
//
//
//

IndicatorShortName(timeFrameToString(timeFrame)+" TMA bands ("+HalfLength+")");

gi_PipsDecimal = Get_Pips_Decimal();

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




//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//

int start()
{
int counted_bars=IndicatorCounted();
int i,j,k,limit;

if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=MathMin(Bars-1,Bars-counted_bars+HalfLength);
if (returnBars) { buffer1[0] = limit+1; return(0); }

//
//
//
//
//

if (calculateValue || timeFrame==Period())
{
for (i=limit; i>=0; i--)
{
double sum = (HalfLength+1)*iMA(NULL,0,1,0,MODE_SMA,Price,i);
double sumw = (HalfLength+1);

for(j=1, k=HalfLength; j<=HalfLength; j++, k--)
{
sum += k*iMA(NULL,0,1,0,MODE_SMA,Price,i+j);
sumw += k;

if (j<=i)
{
sum += k*iMA(NULL,0,1,0,MODE_SMA,Price,i-j);
sumw += k;
}
}

//
//
//
//
//

double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
buffer1 = sum/sumw;
buffer2 = buffer1+range;
buffer3 = buffer1-range;

//
//
//
//
//

trend = 0;
if (alertsOnHighLow)
{
if (High > buffer2) trend = 1;
if (Low < buffer3) trend = -1;
}
else
{
if (Close > buffer2) trend = 1;
if (Close < buffer3) trend = -1;
}
}
if (!calculateValue) manageAlerts();

// Calculate the distances between bid & bands
double ld_Dist.Pts, ld_Dist.Pips;

// Distance to mid
ld_Dist.Pts = MathAbs(Bid - buffer1[0]);
ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
ObjectCreate("!Mid",OBJ_TEXT,0,0,0);
ObjectSet("!Mid",OBJPROP_TIME1,Time[0]+(3*Period()*60));
ObjectSet("!Mid",OBJPROP_PRICE1,buffer1[0]);
ObjectSetText("!Mid",DoubleToStr(ld_Dist.Pips,gi_PipsDecimal),10,"Arial",indicator_color1);

// Distance to upper
ld_Dist.Pts = MathAbs(Bid - buffer2[0]);
ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
ObjectCreate("!Upp",OBJ_TEXT,0,0,0);
ObjectSet("!Upp",OBJPROP_TIME1,Time[0]+(3*Period()*60));
ObjectSet("!Upp",OBJPROP_PRICE1,buffer2[0]);
ObjectSetText("!Upp",DoubleToStr(ld_Dist.Pips,gi_PipsDecimal),10,"Arial",indicator_color2);

// Distance to lower
ld_Dist.Pts = MathAbs(Bid - buffer3[0]);
ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
ObjectCreate("!Low",OBJ_TEXT,0,0,0);
ObjectSet("!Low",OBJPROP_TIME1,Time[0]+(3*Period()*60));
ObjectSet("!Low",OBJPROP_PRICE1,buffer3[0]);
ObjectSetText("!Low",DoubleToStr(ld_Dist.Pips,gi_PipsDecimal),10,"Arial",indicator_color3);


return(0);
}

//
//
//
//
//

limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
for(i=limit; i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time);
buffer1 = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,0,y);
buffer2 = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,1,y);
buffer3 = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,2,y);
trend = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,3,y);

//
//
//
//
//

if (timeFrame <= Period() || y==iBarShift(NULL,timeFrame,Time[i-1])) continue;
if (!Interpolate) continue;

//
//
//
//
//

datetime time = iTime(NULL,timeFrame,y);
for(int n = 1; i+n < Bars && Time[i+n] >= time; n++) continue;
for(k = 1; k < n; k++)
{
buffer1[i+k] = buffer1 +(buffer1[i+n]-buffer1)*k/n;
buffer2[i+k] = buffer2 +(buffer2[i+n]-buffer2)*k/n;
buffer3[i+k] = buffer3 +(buffer3[i+n]-buffer3)*k/n;
}
}

//
//
//
//
//

manageAlerts();
return(0);
}

//+-------------------------------------------------------------------
//|
//+-------------------------------------------------------------------
//
//
//
//
//

void manageAlerts()
{
if (alertsOn)
{
if (alertsOnCurrent)
int whichBar = 0;
else whichBar = 1; whichBar = iBarShift(NULL,0,iTime(NULL,timeFrame,whichBar));
if (trend[whichBar] != trend[whichBar+1])
{
if (trend[whichBar] == 1) doAlert(whichBar,"up");
if (trend[whichBar] ==-1) doAlert(whichBar,"down");
}
}
}

//
//
//
//
//

void doAlert(int forBar, string doWhat)
{
static string previousAlert="nothing";
static datetime previousTime;
string message;

if (previousAlert != doWhat || previousTime != Time[forBar]) {
previousAlert = doWhat;
previousTime = Time[forBar];

//
//
//
//
//

message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," "+timeFrameToString(timeFrame)+" TMA bands price penetrated ",doWhat," band");
if (alertsMessage) Alert(message);
if (alertsEmail) SendMail(StringConcatenate(Symbol(),"TMA bands "),message);
if (alertsSound) PlaySound("alert2.wav");
}
}

//+-------------------------------------------------------------------
//|
//+-------------------------------------------------------------------
//
//
//
//
//

string sTfTable[] = {"M1","M5","M15","M30","H1","H4","D1","W1","MN"};
int iTfTable[] = {1,5,15,30,60,240,1440,10080,43200};

//
//
//
//
//

int stringToTimeFrame(string tfs)
{
tfs = StringUpperCase(tfs);
for (int i=ArraySize(iTfTable)-1; i>=0; i--)
if (tfs==sTfTable || tfs==""+iTfTable) return(MathMax(iTfTable,Period()));
return(Period());
}
string timeFrameToString(int tf)
{
for (int i=ArraySize(iTfTable)-1; i>=0; i--)
if (tf==iTfTable) return(sTfTable);
return("");
}

//
//
//
//
//

string StringUpperCase(string str)
{
string s = str;

for (int length=StringLen(str)-1; length>=0; length--)
{
int char = StringGetChar(s, length);
if((char > 96 && char < 123) || (char > 223 && char < 256))
s = StringSetChar(s, length, char - 32);
else if(char > -33 && char < 0)
s = StringSetChar(s, length, char + 224);
}
return(s);
}
//+------------------------------------------------------------------+
//| create screen objects |
//+------------------------------------------------------------------+
void Object_Create(string ps_name,int pi_x,int pi_y,string ps_text=" ",int pi_size=12,
string ps_font="Arial",color pc_colour=CLR_NONE)
{
//----

// if (colour==CLR_NONE) colour=xcBackground;

ObjectCreate(ps_name,OBJ_LABEL,0,0,0,0,0);
ObjectSet(ps_name,OBJPROP_CORNER,1);
ObjectSet(ps_name,OBJPROP_COLOR,pc_colour);
ObjectSet(ps_name,OBJPROP_XDISTANCE,pi_x);
ObjectSet(ps_name,OBJPROP_YDISTANCE,pi_y);

ObjectSetText(ps_name,ps_text,pi_size,ps_font,pc_colour);

//----
return(0);
}
//+------------------------------------------------------------------+
//| convert to points |
//+------------------------------------------------------------------+
double Convert_2_Pts(double pd_Pips)
{
//----
int pd_Points=pd_Pips; // Default - no conversion

if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1))
pd_Points=pd_Pips*10;

if (Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1))
pd_Points=pd_Pips*100;
//----
return(pd_Points);
}
//+------------------------------------------------------------------+
//| convert to pips |
//+------------------------------------------------------------------+
double Convert_2_Pips(double pd_Points)
{
//----
double pd_Pips=pd_Points/Point; // Default - no conversion

if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1))
{
pd_Pips=pd_Points/Point/10;
}

if (Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1))
{
pd_Pips=pd_Points/Point/100;
}
//----
return(pd_Pips);
}
//+------------------------------------------------------------------+
//| get the pips decimal places |
//+------------------------------------------------------------------+
int Get_Pips_Decimal()
{
//----
int pi_PipsDecimal = 0; // Default - no decimals

if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1))
{
pi_PipsDecimal = 1;
}

if (Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1))
{
pi_PipsDecimal = 2;
}
//----
return(pi_PipsDecimal);
}
 
Последнее редактирование модератором:

mobidik

-----
Prosjba podlechitj , 27 boljachek vijevljajet .Spasibo.
//+------------------------------------------------------------------+
//| TriangularMA centered bands.mq4 |
//| mladen |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "mladen"
#property link "[email protected]"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Yellow
#property indicator_color2 DodgerBlue
#property indicator_color3 Red
#property indicator_style2 STYLE_DOT
#property indicator_style3 STYLE_DOT

//
//
//
//
//

extern string TimeFrame = "current time frame";
extern int HalfLength = 56;
extern int Price = PRICE_CLOSE;
extern double ATRMultiplier = 2.0;
extern int ATRPeriod = 100;
extern bool Interpolate = true;

extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsOnHighLow = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;

//
//
//
//
//

double buffer1[];
double buffer2[];
double buffer3[];
double trend[];

//
//
//
//
//

string indicatorFileName;
bool calculateValue;
bool returnBars;
int timeFrame;

int gi_PipsDecimal;

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//

int init()
{
IndicatorBuffers(4);
HalfLength=MathMax(HalfLength,1);
SetIndexBuffer(0,buffer1); SetIndexDrawBegin(0,HalfLength);
SetIndexBuffer(1,buffer2); SetIndexDrawBegin(1,HalfLength);
SetIndexBuffer(2,buffer3); SetIndexDrawBegin(2,HalfLength);
SetIndexBuffer(3,trend);

//
//
//
//
//

indicatorFileName = WindowExpertName();
returnBars = TimeFrame=="returnBars"; if (returnBars) return(0);
calculateValue = TimeFrame=="calculateValue"; if (calculateValue) return(0);
timeFrame = stringToTimeFrame(TimeFrame);

//
//
//
//
//

IndicatorShortName(timeFrameToString(timeFrame)+" TMA bands ("+HalfLength+")");

gi_PipsDecimal = Get_Pips_Decimal();

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




//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//

int start()
{
int counted_bars=IndicatorCounted();
int i,j,k,limit;

if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=MathMin(Bars-1,Bars-counted_bars+HalfLength);
if (returnBars) { buffer1[0] = limit+1; return(0); }

//
//
//
//
//

if (calculateValue || timeFrame==Period())
{
for (i=limit; i>=0; i--)
{
double sum = (HalfLength+1)*iMA(NULL,0,1,0,MODE_SMA,Price,i);
double sumw = (HalfLength+1);

for(j=1, k=HalfLength; j<=HalfLength; j++, k--)
{
sum += k*iMA(NULL,0,1,0,MODE_SMA,Price,i+j);
sumw += k;

if (j<=i)
{
sum += k*iMA(NULL,0,1,0,MODE_SMA,Price,i-j);
sumw += k;
}
}

//
//
//
//
//

double range = iATR(NULL,0,ATRPeriod,i+10)*ATRMultiplier;
buffer1 = sum/sumw;
buffer2 = buffer1+range;
buffer3 = buffer1-range;

//
//
//
//
//

trend = 0;
if (alertsOnHighLow)
{
if (High > buffer2) trend = 1;
if (Low < buffer3) trend = -1;
}
else
{
if (Close > buffer2) trend = 1;
if (Close < buffer3) trend = -1;
}
}
if (!calculateValue) manageAlerts();

// Calculate the distances between bid & bands
double ld_Dist.Pts, ld_Dist.Pips;

// Distance to mid
ld_Dist.Pts = MathAbs(Bid - buffer1[0]);
ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
ObjectCreate("!Mid",OBJ_TEXT,0,0,0);
ObjectSet("!Mid",OBJPROP_TIME1,Time[0]+(3*Period()*60));
ObjectSet("!Mid",OBJPROP_PRICE1,buffer1[0]);
ObjectSetText("!Mid",DoubleToStr(ld_Dist.Pips,gi_PipsDecimal),10,"Arial",indicator_color1);

// Distance to upper
ld_Dist.Pts = MathAbs(Bid - buffer2[0]);
ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
ObjectCreate("!Upp",OBJ_TEXT,0,0,0);
ObjectSet("!Upp",OBJPROP_TIME1,Time[0]+(3*Period()*60));
ObjectSet("!Upp",OBJPROP_PRICE1,buffer2[0]);
ObjectSetText("!Upp",DoubleToStr(ld_Dist.Pips,gi_PipsDecimal),10,"Arial",indicator_color2);

// Distance to lower
ld_Dist.Pts = MathAbs(Bid - buffer3[0]);
ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
ObjectCreate("!Low",OBJ_TEXT,0,0,0);
ObjectSet("!Low",OBJPROP_TIME1,Time[0]+(3*Period()*60));
ObjectSet("!Low",OBJPROP_PRICE1,buffer3[0]);
ObjectSetText("!Low",DoubleToStr(ld_Dist.Pips,gi_PipsDecimal),10,"Arial",indicator_color3);


return(0);
}

//
//
//
//
//

limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
for(i=limit; i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time);
buffer1 = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,0,y);
buffer2 = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,1,y);
buffer3 = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,2,y);
trend = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,3,y);

//
//
//
//
//

if (timeFrame <= Period() || y==iBarShift(NULL,timeFrame,Time[i-1])) continue;
if (!Interpolate) continue;

//
//
//
//
//

datetime time = iTime(NULL,timeFrame,y);
for(int n = 1; i+n < Bars && Time[i+n] >= time; n++) continue;
for(k = 1; k < n; k++)
{
buffer1[i+k] = buffer1 +(buffer1[i+n]-buffer1)*k/n;
buffer2[i+k] = buffer2 +(buffer2[i+n]-buffer2)*k/n;
buffer3[i+k] = buffer3 +(buffer3[i+n]-buffer3)*k/n;
}
}

//
//
//
//
//

manageAlerts();
return(0);
}

//+-------------------------------------------------------------------
//|
//+-------------------------------------------------------------------
//
//
//
//
//

void manageAlerts()
{
if (alertsOn)
{
if (alertsOnCurrent)
int whichBar = 0;
else whichBar = 1; whichBar = iBarShift(NULL,0,iTime(NULL,timeFrame,whichBar));
if (trend[whichBar] != trend[whichBar+1])
{
if (trend[whichBar] == 1) doAlert(whichBar,"up");
if (trend[whichBar] ==-1) doAlert(whichBar,"down");
}
}
}

//
//
//
//
//

void doAlert(int forBar, string doWhat)
{
static string previousAlert="nothing";
static datetime previousTime;
string message;

if (previousAlert != doWhat || previousTime != Time[forBar]) {
previousAlert = doWhat;
previousTime = Time[forBar];

//
//
//
//
//

message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," "+timeFrameToString(timeFrame)+" TMA bands price penetrated ",doWhat," band");
if (alertsMessage) Alert(message);
if (alertsEmail) SendMail(StringConcatenate(Symbol(),"TMA bands "),message);
if (alertsSound) PlaySound("alert2.wav");
}
}

//+-------------------------------------------------------------------
//|
//+-------------------------------------------------------------------
//
//
//
//
//

string sTfTable[] = {"M1","M5","M15","M30","H1","H4","D1","W1","MN"};
int iTfTable[] = {1,5,15,30,60,240,1440,10080,43200};

//
//
//
//
//

int stringToTimeFrame(string tfs)
{
tfs = StringUpperCase(tfs);
for (int i=ArraySize(iTfTable)-1; i>=0; i--)
if (tfs==sTfTable || tfs==""+iTfTable) return(MathMax(iTfTable,Period()));
return(Period());
}
string timeFrameToString(int tf)
{
for (int i=ArraySize(iTfTable)-1; i>=0; i--)
if (tf==iTfTable) return(sTfTable);
return("");
}

//
//
//
//
//

string StringUpperCase(string str)
{
string s = str;

for (int length=StringLen(str)-1; length>=0; length--)
{
int char = StringGetChar(s, length);
if((char > 96 && char < 123) || (char > 223 && char < 256))
s = StringSetChar(s, length, char - 32);
else if(char > -33 && char < 0)
s = StringSetChar(s, length, char + 224);
}
return(s);
}
//+------------------------------------------------------------------+
//| create screen objects |
//+------------------------------------------------------------------+
void Object_Create(string ps_name,int pi_x,int pi_y,string ps_text=" ",int pi_size=12,
string ps_font="Arial",color pc_colour=CLR_NONE)
{
//----

// if (colour==CLR_NONE) colour=xcBackground;

ObjectCreate(ps_name,OBJ_LABEL,0,0,0,0,0);
ObjectSet(ps_name,OBJPROP_CORNER,1);
ObjectSet(ps_name,OBJPROP_COLOR,pc_colour);
ObjectSet(ps_name,OBJPROP_XDISTANCE,pi_x);
ObjectSet(ps_name,OBJPROP_YDISTANCE,pi_y);

ObjectSetText(ps_name,ps_text,pi_size,ps_font,pc_colour);

//----
return(0);
}
//+------------------------------------------------------------------+
//| convert to points |
//+------------------------------------------------------------------+
double Convert_2_Pts(double pd_Pips)
{
//----
int pd_Points=pd_Pips; // Default - no conversion

if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1))
pd_Points=pd_Pips*10;

if (Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1))
pd_Points=pd_Pips*100;
//----
return(pd_Points);
}
//+------------------------------------------------------------------+
//| convert to pips |
//+------------------------------------------------------------------+
double Convert_2_Pips(double pd_Points)
{
//----
double pd_Pips=pd_Points/Point; // Default - no conversion

if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1))
{
pd_Pips=pd_Points/Point/10;
}

if (Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1))
{
pd_Pips=pd_Points/Point/100;
}
//----
return(pd_Pips);
}
//+------------------------------------------------------------------+
//| get the pips decimal places |
//+------------------------------------------------------------------+
int Get_Pips_Decimal()
{
//----
int pi_PipsDecimal = 0; // Default - no decimals

if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1))
{
pi_PipsDecimal = 1;
}

if (Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1))
{
pi_PipsDecimal = 2;
}
//----
return(pi_PipsDecimal);
}



Код выкладывайте либо под споллером либо отдельным файлом.
 

Вложения

  • TMA.png
    TMA.png
    66,6 КБ · Просмотры: 331
  • TriangularMA centered bands.mq4
    10,3 КБ · Просмотры: 95

tommy27

Гуру форума
Prosjba podlechitj , 27 boljachek vijevljajet .Spasibo...

Держите.. ток в следующий раз прикрепляйте файл, а не текст кода, а то так намного больше ошибок получается;)

пс. mobidik опередил меня, дружище :laugh::laugh::laugh:
 

Вложения

  • TriangularMA centered bands.mq4
    10,3 КБ · Просмотры: 92
  • TriangularMA centered bands.ex4
    30,7 КБ · Просмотры: 67
  • btcusd-m15-fxopen-investments-inc-2.png
    btcusd-m15-fxopen-investments-inc-2.png
    42,7 КБ · Просмотры: 280
Последнее редактирование:

marshame107

Заблокирован
Уважаемые программисты. Помогите,пожалуйста!
Поменяйте что бы вместо бай открывался сел и вместо сел открывался бай
 

Вложения

  • Trend system v 1.1.rar
    29,1 КБ · Просмотры: 135

V.T.2014

Заблокирован
Можно ли добавить сову несколько несложных функций?
1. Там установлен фильтр на понедельник и пятницу, добавить на вторник, среда, четверг.
2. Добавить часы. Чтобы можно было выставлять время торголи. Требуется, чтобы по ночам сов не работал
...
3. Сов не хочет торговать по йене. Это можно исправить? Или алгоритм работы советника не позволяет по йене этому сову работать?
..
сов показал работоспособность на демосчете, но на неликвидный рынок ставить его нельзя, поэтому нужны все вышеописанные функции
 

Вложения

  • For WWI.ex4
    16,1 КБ · Просмотры: 77
  • For WWI.mq4
    21,3 КБ · Просмотры: 124

olegkrg

Местный знаток
Создайте индикатор пожалуйста один из двух.при совпадении цветов гистограммы стрелка в направлении тренда и алерт,при смене цвета одного из индикаторов крестик и алерт..
 

Вложения

  • !XPS OSCILLATOR.ex4
    3,5 КБ · Просмотры: 201
  • !XPS v8 OSCILLATOR.ex4
    5,6 КБ · Просмотры: 206
  • Screenshot_4.png
    Screenshot_4.png
    39,1 КБ · Просмотры: 422

jenzo

Местный знаток
ребята, если есть помогите вывести настройки.
 

Вложения

  • Dynamic Force Meter.rar
    18,6 КБ · Просмотры: 80
Верх