오류, 버그, 질문 - 페이지 1793 1...178617871788178917901791179217931794179517961797179817991800...3184 새 코멘트 TheXpert 2017.02.10 09:06 #17921 fxsaber : 그런 함수를 작성할 수 있습니까? 예, 생성자와 복사 연산자를 구현해야 합니다. [삭제] 2017.02.10 09:07 #17922 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_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 그리기 유형을 변경하는 것도 불가능합니다. Список изменений в билдах MetaTrader 5 Client Terminal www.mql5.com Автоматическое обновление доступно через систему LiveUpdate:. Errors, bugs, questions How To Explain the WHAT DID YOU DO?????????? fxsaber 2017.02.10 09:25 #17923 Комбинатор : 예, 생성자와 복사 연산자를 구현해야 합니다. 불행히도 이 솔루션은 사용자 지정 구조에서만 작동합니다. MqlTradeRequest 예제에서. Anton 2017.02.10 09:55 #17924 Alexey Kozitsyn : 업데이트한 후 DRAW_CANDLES 유형을 빌드하는 데 오류가 있습니다. 여기에 말한 대로 모든 작업을 수행합니다. https://www.mql5.com/ru/forum/23/page19#comment_2891050 입력 매개변수를 통해 선택하여 빌드 유형(1-2-3)을 변경할 수 없습니다. 코드: 코드에 오류가 있습니다. PlotIndex Set Integer 를 사용해야 합니다. ////--- Устанавливаем количество цветов стиля (не помогает) PlotIndex Set Integer ( 0 , PLOT_COLOR_INDEXES , 3 ); TheXpert 2017.02.10 10:00 #17925 fxsaber : 불행히도 이 솔루션은 사용자 지정 구조에서만 작동합니다. MqlTradeRequest 예제에서. 그런 다음 매개변수에서 참조로 구조를 전달합니다. 또 다른 옵션은 구조와 캐스트의 복사본을 직접 만드는 것이지만 아름답게 만드는 방법에 대해 생각해야 합니다. [삭제] 2017.02.10 10:00 #17926 Anton : 코드에 오류가 있습니다. PlotIndex Set Integer 를 사용해야 합니다. ////--- Устанавливаем количество цветов стиля (не помогает) PlotIndex Set Integer ( 0 , PLOT_COLOR_INDEXES , 3 ); 젠장, 고마워! fxsaber 2017.02.10 10:04 #17927 Комбинатор : 그런 다음 매개변수에서 참조로 구조를 전달합니다. 또 다른 옵션은 구조 및 캐스트의 복사본을 직접 만드는 것이지만 아름답게 만드는 방법에 대해 생각해야 합니다. 이해하지 못했습니다. TheXpert 2017.02.10 10:17 #17928 fxsaber : 이해하지 못했습니다. struct MyTradeRequest{ // копия MqlTradeRequest // + нужные операторы }; // ... MyTradeRequest request = Function(); MqlTradeResult = { 0 }; OrderSend (( MqlTradeRequest )request, result); // ... 이것은 단지 아이디어 일뿐입니다. 오류가있을 수 있습니다. 브라우저에서 직접 작성했습니다. fxsaber 2017.02.10 10:25 #17929 Комбинатор : struct MyTradeRequest{ // копия MqlTradeRequest // + нужные операторы }; // ... MyTradeRequest request = Function(); MqlTradeResult = { 0 }; OrderSend ( ( MqlTradeRequest )request , result); // ... 이것은 단지 아이디어 일뿐입니다. 오류가있을 수 있습니다. 브라우저에서 직접 작성했습니다. 나는 그 생각을 이해했다. 그러나 그러한 캐스팅은 작동하지 않습니다. TheXpert 2017.02.10 10:26 #17930 fxsaber : 나는 그 생각을 이해했다. 그러나 그러한 캐스팅은 작동하지 않습니다. 왜요? 1...178617871788178917901791179217931794179517961797179817991800...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
그런 함수를 작성할 수 있습니까?
업데이트 후 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 그리기 유형을 변경하는 것도 불가능합니다.
예, 생성자와 복사 연산자를 구현해야 합니다.
업데이트한 후 DRAW_CANDLES 유형을 빌드하는 데 오류가 있습니다. 여기에 말한 대로 모든 작업을 수행합니다. https://www.mql5.com/ru/forum/23/page19#comment_2891050
입력 매개변수를 통해 선택하여 빌드 유형(1-2-3)을 변경할 수 없습니다. 코드:
PlotIndex Set Integer ( 0 , PLOT_COLOR_INDEXES , 3 );
불행히도 이 솔루션은 사용자 지정 구조에서만 작동합니다. MqlTradeRequest 예제에서.
코드에 오류가 있습니다. PlotIndex Set Integer 를 사용해야 합니다.
PlotIndex Set Integer ( 0 , PLOT_COLOR_INDEXES , 3 );
그런 다음 매개변수에서 참조로 구조를 전달합니다. 또 다른 옵션은 구조 및 캐스트의 복사본을 직접 만드는 것이지만 아름답게 만드는 방법에 대해 생각해야 합니다.
이해하지 못했습니다.
{
// копия MqlTradeRequest
// + нужные операторы
};
// ...
MyTradeRequest request = Function();
MqlTradeResult = { 0 };
OrderSend (( MqlTradeRequest )request, result);
// ...
{
// копия MqlTradeRequest
// + нужные операторы
};
// ...
MyTradeRequest request = Function();
MqlTradeResult = { 0 };
OrderSend ( ( MqlTradeRequest )request , result);
// ...
나는 그 생각을 이해했다. 그러나 그러한 캐스팅은 작동하지 않습니다.