Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Уважаемый Младен,
Извините за основной вопрос - я всегда в затруднении, когда код требует работы с датой и временем. В строке 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()).
Младен,
Спасибо за быстрый ответ.
Уважаемый Младен,
Извините за основной вопрос - я всегда в затруднении, когда код требует работы с датой и временем. В строке 97 советника AverageJoe, который вы разместили на этом форуме пару дней назад, есть константа 120:
if (OrderType() == OP_SELL && CurTime()-LastSellTime >=120) result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
Какова единица измерения этих 120?
С уважением,
ChrisstoffChrisstoff
Это секунды (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
Модифицируйте индикаторы Спасибо!
#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
За :mladen
Можете ли вы сделать MT4 нормальным? Участок кода TS, я не буду писать MT4 . Спасибо.
Kreangast
2013-5-21Из того, что вы выложили, невозможно понять, что он должен делать.
To :mladen
Я хотел бы спросить, как сделать?
Спасибо
Kreangast
За :mladen
Я хотел бы спросить, как это сделать?
Спасибо.
KreangastДля начала вам нужно прочитать вот это: https: //www.mql5.com/en/forum/172969/page2 и затем что-то подобное для tradestation, а затем вы можете конвертировать код из одного языка кодирования в другой язык кодирования.
Для начала вам сначала нужно прочитать вот это: https: //www.mql5.com/en/forum/172969/page2 и затем что-то подобное для tradestation, а затем вы можете преобразовать код с одного языка кодирования на другой язык кодирования
Но этот код не пишется, проблема в MT4 нормально? Чрезвычайно благодарен
Kreangast
2013/5/21