Ошибки, баги, вопросы - страница 1792 1...178517861787178817891790179117921793179417951796179717981799...3776 Новый комментарий fxsaber 2017.02.09 16:10 #17911 Andrey Sokolov: Это только сигналы, цена в них не заложена.Ну а откуда тогда эти цифры в стейтах самих Сигналов? fxsaber 2017.02.09 16:13 #17912 A100: Ошибка при компиляцииB<const A> a; A100 2017.02.09 17:14 #17913 fxsaber:Предыдущая запись носит более общий характер при макроподстановке#define MACRO( X ) \void f( const X ) {} \ //(*)void g( X const ) {}MACRO( int ) //нормальноMACRO( const A * ) //ошибка: здесь (*) причина fxsaber 2017.02.09 17:16 #17914 A100: Предыдущая запись носит более общий характер в макроX const: X может быть как int, так и const Aconst X: здесь X не может быть const AДа, про макро я не подумал. Amon1953 2017.02.09 21:32 #17915 Alexey Kozitsyn: Отбираете нужную историю, перебираете ордера и смотрите у них комиссии, свопы, профит.Спасибо, я не внимательно посмотрел учебник. :=) fxsaber 2017.02.10 07:51 #17916 Есть две переменные одного типа - не простая структура (содержит объекты), например, MqlTradeRequest.Как одну переменную сделать копией другой? Без прописывания копирования каждого поля структуры. И возможно ли написать такую функцию?MqlTradeRequest Function();Чтобы функция возвращала не простую структуру. Вопросы от "чайника" Как сделать динамический двумерный [АРХИВ]Любой вопрос новичка, чтоб fxsaber 2017.02.10 07:55 #17917 struct STRUCT{ ~STRUCT() { Print(__FUNCTION__); }};STRUCT f(){ STRUCT Struct; return(Struct);}void OnStart(){ f();}РезультатSTRUCT::~STRUCTSTRUCT::~STRUCTSTRUCT::~STRUCTПочему три раза, а не два? TheXpert 2017.02.10 09:06 #17918 fxsaber: И возможно ли написать такую функцию?Да, нужно реализовать конструктор и оператор копирования [Удален] 2017.02.10 09:07 #17919 Slawa:Есть ошибка в построении типа DRAW_CANDLES после его обновления: делаю все как сказано здесь: https://www.mql5.com/ru/forum/23/page19#comment_2891050Невозможно изменить тип построения (1-2-3) путем выбора через входные параметры. Код:#property indicator_separate_window#property indicator_plots 1#property indicator_buffers 4 //+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+//--- Перечисление - новые типы отрисовки DRAW_CANDLEenum ENUM_DRAW_CANDLE_TYPE { DRAW_CANDLE_TYPE_1, // Один цвет: #1 - контуры и тела DRAW_CANDLE_TYPE_2, // Два цвета: #1 - контуры, #2 - тела DRAW_CANDLE_TYPE_3 // Три цвета: #1 - контуры, #2 - восход., #3 - нисход. };//---double bufopen[];double bufhigh[];double buflow[];double bufclose[];//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+input ENUM_DRAW_CANDLE_TYPE inpDrawCandleStyle=DRAW_CANDLE_TYPE_1;input color inpClr1 = clrWhite;input color inpClr2 = clrLime;input color inpClr3 = clrRed;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int OnInit() {//--- Привязываем буферы SetIndexBuffer(0,bufopen,INDICATOR_DATA); SetIndexBuffer(1,bufhigh,INDICATOR_DATA); SetIndexBuffer(2,buflow,INDICATOR_DATA); SetIndexBuffer(3,bufclose,INDICATOR_DATA);//--- Устанавливаем тип графического построения PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_CANDLES);//--- Устанавливаем пустые значения в буферах PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);//--- Устанавливаем цвета индикатора switch(inpDrawCandleStyle) // В зависимости от типа построения свечей { case DRAW_CANDLE_TYPE_1: // Если все свечи одним цветом ////--- Устанавливаем количество цветов стиля (не помогает) //PlotIndexGetInteger( 0, PLOT_COLOR_INDEXES, 1 ); //--- PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,inpClr1); break; case DRAW_CANDLE_TYPE_2: // Если контуры цветом #1, а тела - цветом #2 ////--- Устанавливаем количество цветов стиля (не помогает) //PlotIndexGetInteger( 0, PLOT_COLOR_INDEXES, 2 ); //--- Устанавливаем цвет индикатора PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,inpClr1); PlotIndexSetInteger(0,PLOT_LINE_COLOR,1,inpClr2); break; case DRAW_CANDLE_TYPE_3: // Если контуры цветом #1, восх - #2, нисх - #3 ////--- Устанавливаем количество цветов стиля (не помогает) //PlotIndexGetInteger( 0, PLOT_COLOR_INDEXES, 3 ); //--- Устанавливаем цвет индикатора PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,inpClr1); PlotIndexSetInteger(0,PLOT_LINE_COLOR,1,inpClr2); PlotIndexSetInteger(0,PLOT_LINE_COLOR,2,inpClr3); break; default: // Если тип построения не определен Print(__FUNCTION__,": ОШИБКА! Неизвестный тип построения свечей '"+EnumToString(inpDrawCandleStyle)+"'"); return(INIT_FAILED); // Выходим с ошибкой }//--- return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) {//--- if(prev_calculated<=0) for(int i=0; i<rates_total; i++) { bufopen[ i ] = open[ i ]; bufhigh[ i ] = high[ i ]; buflow[i]=low[i]; bufclose[i]=close[i]; }//--- return value of prev_calculated for next call return(rates_total); }//+------------------------------------------------------------------+В частности - первый тип (свечи + контуры первым цветом) работает нормально, на остальные не переключается.Добавлено:Если задавать цвета через директиву препроцессора - все нормально, но потом также невозможно изменить тип отрисовки DRAW_CANDLES. Список изменений в билдах MetaTrader 5 Client Terminal www.mql5.com Автоматическое обновление доступно через систему LiveUpdate:. Для СервисДеска Баг с Данные из других графиков DRAW_COLOR_ARROW не перекрашивается fxsaber 2017.02.10 09:25 #17920 Комбинатор: Да, нужно реализовать конструктор и оператор копированияК сожалению, такое решение работает только для кастомной структуры. В примере MqlTradeRequest. 1...178517861787178817891790179117921793179417951796179717981799...3776 Новый комментарий
Это только сигналы, цена в них не заложена.
Ошибка при компиляции
Предыдущая запись носит более общий характер при макроподстановке
void f( const X ) {} \ //(*)
void g( X const ) {}
MACRO( int ) //нормально
MACRO( const A * ) //ошибка: здесь (*) причина
Предыдущая запись носит более общий характер в макро
X const: X может быть как int, так и const A
const X: здесь X не может быть const A
Отбираете нужную историю, перебираете ордера и смотрите у них комиссии, свопы, профит.
Есть две переменные одного типа - не простая структура (содержит объекты), например, MqlTradeRequest.
Как одну переменную сделать копией другой? Без прописывания копирования каждого поля структуры.
И возможно ли написать такую функцию?
{
~STRUCT()
{
Print(__FUNCTION__);
}
};
STRUCT f()
{
STRUCT Struct;
return(Struct);
}
void OnStart()
{
f();
}
STRUCT::~STRUCT
STRUCT::~STRUCT
И возможно ли написать такую функцию?
Есть ошибка в построении типа DRAW_CANDLES после его обновления: делаю все как сказано здесь: https://www.mql5.com/ru/forum/23/page19#comment_2891050
Невозможно изменить тип построения (1-2-3) путем выбора через входные параметры. Код:
#property indicator_plots 1
#property indicator_buffers 4
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//--- Перечисление - новые типы отрисовки DRAW_CANDLE
enum ENUM_DRAW_CANDLE_TYPE
{
DRAW_CANDLE_TYPE_1, // Один цвет: #1 - контуры и тела
DRAW_CANDLE_TYPE_2, // Два цвета: #1 - контуры, #2 - тела
DRAW_CANDLE_TYPE_3 // Три цвета: #1 - контуры, #2 - восход., #3 - нисход.
};
//---
double bufopen[];
double bufhigh[];
double buflow[];
double bufclose[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
input ENUM_DRAW_CANDLE_TYPE inpDrawCandleStyle=DRAW_CANDLE_TYPE_1;
input color inpClr1 = clrWhite;
input color inpClr2 = clrLime;
input color inpClr3 = clrRed;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Привязываем буферы
SetIndexBuffer(0,bufopen,INDICATOR_DATA);
SetIndexBuffer(1,bufhigh,INDICATOR_DATA);
SetIndexBuffer(2,buflow,INDICATOR_DATA);
SetIndexBuffer(3,bufclose,INDICATOR_DATA);
//--- Устанавливаем тип графического построения
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_CANDLES);
//--- Устанавливаем пустые значения в буферах
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//--- Устанавливаем цвета индикатора
switch(inpDrawCandleStyle) // В зависимости от типа построения свечей
{
case DRAW_CANDLE_TYPE_1: // Если все свечи одним цветом
////--- Устанавливаем количество цветов стиля (не помогает)
//PlotIndexGetInteger( 0, PLOT_COLOR_INDEXES, 1 );
//---
PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,inpClr1);
break;
case DRAW_CANDLE_TYPE_2: // Если контуры цветом #1, а тела - цветом #2
////--- Устанавливаем количество цветов стиля (не помогает)
//PlotIndexGetInteger( 0, PLOT_COLOR_INDEXES, 2 );
//--- Устанавливаем цвет индикатора
PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,inpClr1);
PlotIndexSetInteger(0,PLOT_LINE_COLOR,1,inpClr2);
break;
case DRAW_CANDLE_TYPE_3: // Если контуры цветом #1, восх - #2, нисх - #3
////--- Устанавливаем количество цветов стиля (не помогает)
//PlotIndexGetInteger( 0, PLOT_COLOR_INDEXES, 3 );
//--- Устанавливаем цвет индикатора
PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,inpClr1);
PlotIndexSetInteger(0,PLOT_LINE_COLOR,1,inpClr2);
PlotIndexSetInteger(0,PLOT_LINE_COLOR,2,inpClr3);
break;
default: // Если тип построения не определен
Print(__FUNCTION__,": ОШИБКА! Неизвестный тип построения свечей '"+EnumToString(inpDrawCandleStyle)+"'");
return(INIT_FAILED); // Выходим с ошибкой
}
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
if(prev_calculated<=0)
for(int i=0; i<rates_total; i++)
{
bufopen[ i ] = open[ i ];
bufhigh[ i ] = high[ i ];
buflow[i]=low[i];
bufclose[i]=close[i];
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
В частности - первый тип (свечи + контуры первым цветом) работает нормально, на остальные не переключается.
Добавлено:
Если задавать цвета через директиву препроцессора - все нормально, но потом также невозможно изменить тип отрисовки DRAW_CANDLES.
Да, нужно реализовать конструктор и оператор копирования