Помощь в кодировании - страница 88

 

Уважаемый Младен,

Извините за основной вопрос - я всегда в затруднении, когда код требует работы с датой и временем. В строке 97 советника AverageJoe, который Вы разместили на этом форуме пару дней назад, есть константа 120:

if (OrderType() == OP_SELL && CurTime()-LastSellTime >=120) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );

Какова единица измерения этих 120?

С уважением,

Chrisstoff

 
mladen:
Chrisstoff Это секунды (metatrader сохраняет время как количество секунд, прошедших с 1.1.1970, если я не ошибаюсь, но суть в том, что он всегда работает с секундами, когда объявляется переменная времени или вызывается функция типа CurrentTime()).

Младен,

Спасибо за быстрый ответ.

 
chrisstoff:
Уважаемый Младен,

Извините за основной вопрос - я всегда в затруднении, когда код требует работы с датой и временем. В строке 97 советника AverageJoe, который вы разместили на этом форуме пару дней назад, есть константа 120:

if (OrderType() == OP_SELL && CurTime()-LastSellTime >=120) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );

Какова единица измерения этих 120?

С уважением,

Chrisstoff

Chrisstoff

Это секунды (metatrader сохраняет время как количество секунд, прошедших с 1.1.1970, если я не ошибаюсь, но дело в том, что он всегда работает с секундами, когда объявляется переменная времени или вызывается функция типа CurrentTime()).

 

Изменение индикаторов Спасибо!

#property indicator_chart_window

#property indicator_buffers 5

//---- входные параметры

extern int TimeFramePeriod;

extern int N=100;

//

extern double CustoMA1;

extern double CustoMA2;

extern double CustoMA3;

extern double CustoMA4;

extern double high20;

extern double low20;

//

#property indicator_color1 Red

#property indicator_color2 Lime

#property indicator_color3 Orange

#property indicator_color4 Red

//--- буферы

double CustoMA1[];

double CustoMA2[];

double CustoMA3[];

double CustoMA4[];

double tr[];

//

int init() {

SetIndexStyle(0, DRAW_LINE);

SetIndexBuffer(0, CustoMA1);

SetIndexStyle(1, DRAW_LINE);

SetIndexBuffer(1, CustoMA2);

SetIndexStyle(2, DRAW_LINE);

SetIndexBuffer(2, CustoMA3);

SetIndexStyle(3, DRAW_LINE);

SetIndexBuffer(3, CustoMA4);

SetIndexStyle(4, DRAW_LINE);

SetIndexBuffer(4,tr);

return (0);

}

//---- буферы

double buff[];

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

//| Пользовательская функция инициализации индикатора |

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

//int init()

//{

//if (Bars < MIN_BARS_REQUIRED) return(-1);

//IndicatorDigits(Digits);

//SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);

//SetIndexBuffer(0, buff);

//string paramDesc = "("+getPeriodDesc(TimeFramePeriod) + ", "")";

//IndicatorShortName("" + paramDesc);

//Установка индексных меток

//SetIndexLabel(0, "" + paramDesc);

//----

//return(0);

}

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

//| Пользовательская функция деинициализации индикатора.

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

int start()

{

int Limit;

int counted_bars=IndicatorCounted();

//----

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

int i=0;

for (i=Mathmin(Bars-5,Limit);i>=0;i--);

tr[]=MathMax(MathMax(High-Low,MathAbs(Close-High)),MathAbs(Close-Low));

higt20=H=HHV(H,N);

low20=L=LLV(L,N);

//

MA1=H-tr[]*0.1;

MA2=H-tr[]*0.2;

MA3=L+tr[]*0.1;

MA4=L+tr[]*0.2;

//

CustoMA1=REF(MA1,BarsSince(higt20));

CustoMA2=REF(MA2,BarsSince(higt20));

CustoMA3=REF(MA3, BarsSince(low20));

CustoMA4=REF(MA4,BarsSince(low20));

//

Plot(CustoMA1, "TREND", colorRed);

Plot(CustoMA2, "TREND",colorLime);

Plot(CustoMA3, "TREND", colorOrange);

Plot(CustoMA4, "TREND",colorRed);

//----

return(0);

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

string getPeriodDesc(int aNumMinutes)

{

switch(aNumMinutes)

{

case PERIOD_M1 : return("M1");

case PERIOD_M15: return("M15");

case PERIOD_M30: return("M30");

case PERIOD_H1 : return("H1");

case PERIOD_H4 : return("H4");

case PERIOD_D1 : return("D1");

case PERIOD_W1 : return("W1");

case PERIOD_MN1: return("MN1");

case 0: return("Chart");

default: return("M" + aNumMinutes);

}

}

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

//| |

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

double getDeMarker(int aShift)

{

return(iDeMarker(NULL, TimeFramePeriod, 13, iBarShift(NULL, TimeFramePeriod, Time[aShift])));

}

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

//| |

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

int start()

{

for(int shift=Bars-1;shift>=0;shift--)

{

buff[shift]=getDeMarker(shift);

}

return(0);

}

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

Извините! Вставьте код сюда

Kreangast

2013/5/21

 
Kreangast:
Модифицируйте индикаторы Спасибо!

#property indicator_chart_window

#property indicator_buffers 5

//---- входные параметры

extern int TimeFramePeriod;

extern int N=100;

//

extern double CustoMA1;

extern double CustoMA2;

extern double CustoMA3;

extern double CustoMA4;

extern double high20;

extern double low20;

//

#property indicator_color1 Red

#property indicator_color2 Lime

#property indicator_color3 Orange

#property indicator_color4 Red

//--- буферы

double CustoMA1[];

double CustoMA2[];

double CustoMA3[];

double CustoMA4[];

double tr[];

//

int init() {

SetIndexStyle(0, DRAW_LINE);

SetIndexBuffer(0, CustoMA1);

SetIndexStyle(1, DRAW_LINE);

SetIndexBuffer(1, CustoMA2);

SetIndexStyle(2, DRAW_LINE);

SetIndexBuffer(2, CustoMA3);

SetIndexStyle(3, DRAW_LINE);

SetIndexBuffer(3, CustoMA4);

SetIndexStyle(4, DRAW_LINE);

SetIndexBuffer(4,tr);

return (0);

}

//---- буферы

double buff[];

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

//| Пользовательская функция инициализации индикатора |

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

//int init()

//{

//if (Bars < MIN_BARS_REQUIRED) return(-1);

//IndicatorDigits(Digits);

//SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);

//SetIndexBuffer(0, buff);

//string paramDesc = "("+getPeriodDesc(TimeFramePeriod) + ", "")";

//IndicatorShortName("" + paramDesc);

//Установка индексных меток

//SetIndexLabel(0, "" + paramDesc);

//----

//return(0);

}

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

//| Пользовательская функция деинициализации индикатора.

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

int start()

{

int Limit;

int counted_bars=IndicatorCounted();

//----

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

int i=0;

for (i=Mathmin(Bars-5,Limit);i>=0;i--);

tr[]=MathMax(MathMax(High-Low,MathAbs(Close-High)),MathAbs(Close-Low));

higt20=H=HHV(H,N);

low20=L=LLV(L,N);

//

MA1=H-tr[]*0.1;

MA2=H-tr[]*0.2;

MA3=L+tr[]*0.1;

MA4=L+tr[]*0.2;

//

CustoMA1=REF(MA1,BarsSince(higt20));

CustoMA2=REF(MA2,BarsSince(higt20));

CustoMA3=REF(MA3, BarsSince(low20));

CustoMA4=REF(MA4,BarsSince(low20));

//

Plot(CustoMA1, "TREND", colorRed);

Plot(CustoMA2, "TREND",colorLime);

Plot(CustoMA3, "TREND", colorOrange);

Plot(CustoMA4, "TREND",colorRed);

//----

return(0);

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

string getPeriodDesc(int aNumMinutes)

{

switch(aNumMinutes)

{

case PERIOD_M1 : return("M1");

case PERIOD_M15: return("M15");

case PERIOD_M30: return("M30");

case PERIOD_H1 : return("H1");

case PERIOD_H4 : return("H4");

case PERIOD_D1 : return("D1");

case PERIOD_W1 : return("W1");

case PERIOD_MN1 : return("MN1");

case 0: return("Chart");

default: return("M" + aNumMinutes);

}

}

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

//| |

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

double getDeMarker(int aShift)

{

return(iDeMarker(NULL, TimeFramePeriod, 13, iBarShift(NULL, TimeFramePeriod, Time[aShift])));

}

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

//| |

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

int start()

{

for(int shift=Bars-1;shift>=0;shift--)

{

buff[shift]=getDeMarker(shift);

}

return(0);

}

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

Извините! Вставьте код сюда

Kreangast

2013/5/21

Это кто-то пытается совместить код из tadestation с кодом из metatrader. Это не будет работать таким образом, и это не может быть объединено таким образом.

 

To :mladen

Можете ли вы войти в MT4? Участок кода TS, я не буду писать MT4 . Спасибо.

Kreangast

2013-5-21

 
Kreangast:
За :mladen

Можете ли вы сделать MT4 нормальным? Участок кода TS, я не буду писать MT4 . Спасибо.

Kreangast

2013-5-21

Из того, что вы выложили, невозможно понять, что он должен делать.

 

To :mladen

Я хотел бы спросить, как сделать?

Спасибо

Kreangast

 
Kreangast:
За :mladen

Я хотел бы спросить, как это сделать?

Спасибо.

Kreangast

Для начала вам нужно прочитать вот это: https: //www.mql5.com/en/forum/172969/page2 и затем что-то подобное для tradestation, а затем вы можете конвертировать код из одного языка кодирования в другой язык кодирования.

 
mladen:
Для начала вам сначала нужно прочитать вот это: https: //www.mql5.com/en/forum/172969/page2 и затем что-то подобное для tradestation, а затем вы можете преобразовать код с одного языка кодирования на другой язык кодирования

Но этот код не пишется, проблема в MT4 нормально? Чрезвычайно благодарен

Kreangast

2013/5/21