색상을 음영으로 분해하는 기능. - 페이지 13 1...67891011121314151617181920...23 새 코멘트 Реter Konow 2018.10.11 17:54 #121 추가되었습니다. 이 스크립트를 확인하십시오. //+------------------------------------------------------------------+ //| Gradient test 1.mq4 | //| Peter Konow | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Peter Konow" #property link "https://www.mql5.com" #property version "1.00" #include <Canvas\Canvas.mqh> //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ union rgb { uint clr; uchar c[ 4 ];}; rgb C,cc; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart () { CCanvas canvas; if (!canvas.CreateBitmapLabel( "Gradient" , 200 , 200 , 768 , 256 , COLOR_FORMAT_ARGB_NORMALIZE )) { Print ( "Error creating canvas: " , GetLastError ()); } string Main_color = C'190,215,160' ; double d= 5 ; string Gradient[ 256 ]; while (! IsStopped ()) { C.c[ 2 ]= uchar ( 127.5 *( 1 + sin (d* 1.2 ))+ 0.4999 ); C.c[ 1 ]= uchar ( 127.5 *( 1 + sin (d* 1.9 ))+ 0.4999 ); C.c[ 0 ]= uchar ( 127.5 *( 1 + sin (d* 2.8 ))+ 0.4999 ); // генерируем новый цвет cc.clr=C.clr; ulong t= GetMicrosecondCount (); Диапазон_оттенков(C.clr,Gradient); //Диапазон_оттенков(Main_color,Gradient); t= GetMicrosecondCount ()-t; for ( int y= 0 ; y< 256 ; y++) { //Alert(__FUNCTION__," Gradient[",y,"] ",Gradient[y]); canvas.LineHorizontal( 0 , 767 ,y, ColorToARGB ( StringToColor (Gradient[y]), 255 )); C.clr=Gradient[y]; canvas.PixelSet(( int )C.c[ 2 ]+( int )C.c[ 1 ]+( int )C.c[ 0 ],y, ColorToARGB ( clrWhite )); if (C.c[ 1 ]> 0 ) canvas.PixelSet( int ( 50.0 *( int )C.c[ 2 ]/( double )C.c[ 1 ]+ 50.0 *( int )C.c[ 0 ]/( double )C.c[ 1 ]),y, ColorToARGB ( clrGreen )); if (C.c[ 2 ]> 0 ) canvas.PixelSet( int ( 50.0 *( int )C.c[ 1 ]/( double )C.c[ 2 ]+ 50.0 *( int )C.c[ 0 ]/( double )C.c[ 2 ]),y, ColorToARGB ( clrRed )); if (C.c[ 0 ]> 0 ) canvas.PixelSet( int ( 50.0 *( int )C.c[ 2 ]/( double )C.c[ 0 ]+ 50.0 *( int )C.c[ 1 ]/( double )C.c[ 0 ]),y, ColorToARGB ( clrBlue )); } canvas.FillRectangle( 500 , 75 , 660 , 150 , ColorToARGB (cc.clr, 240 )); canvas.FontSet( "Tahoma" , 20 ); canvas. TextOut ( 510 , 85 , "R = " + string (cc.c[ 2 ]), ColorToARGB (~cc.clr)); canvas. TextOut ( 510 , 107 , "G = " + string (cc.c[ 1 ]), ColorToARGB (~cc.clr)); canvas. TextOut ( 510 , 129 , "B = " + string (cc.c[ 0 ]), ColorToARGB (~cc.clr)); canvas.FontSet( "Times New Roman" , 15 ); canvas. TextOut ( 300 , 10 , "Время формирования градиентного массива из 256 элементов = " + string (t)+ " микросекунд" , ColorToARGB ( clrWhite )); canvas.Update(); d+= 0.01 ; Sleep ( 30 ); } canvas.Destroy(); //------------------------ // for(int a1 = 0; a1 < 256; a1++)Alert(__FUNCTION__," Gradient[",a1,"] ",Gradient[a1]); } //+------------------------------------------------------------------+ //================================================================================================================================================================ void Диапазон_оттенков( color _Цвет, string &Все_оттенки[ 256 ]) { color R,G,B,q; //------------------------------------------------------ string Этот_цвет; double Тангенс_угла_старшего_треугольника_1, Тангенс_угла_среднего_треугольника_1, Тангенс_угла_младшего_треугольника_1, Значение_в_точке_преломления_старшей_компоненты, Значение_в_точке_преломления_средней_компоненты, Значение_в_точке_преломления_младшей_компоненты, Тангенс_угла_старшего_треугольника_2, Тангенс_угла_среднего_треугольника_2, Тангенс_угла_младшего_треугольника_2; //------------------------------------------------------ double pi = 3.1415926536 , Comp_1,Comp_2,Comp_3, //----------------------------------------------- Первая_компонента, Вторая_компонента, Третья_компонента, //----------------------------------------------- Исходный_R = GetR(_Цвет), Исходный_G = GetG(_Цвет), Исходный_B = GetB(_Цвет), //----------------------------------------------- Старшая_компонента = Нужная_компонента(Исходный_R,Исходный_G,Исходный_B, 0 ), Средняя_компонента = Нужная_компонента(Исходный_R,Исходный_G,Исходный_B, 1 ), Младшая_компонента = Нужная_компонента(Исходный_R,Исходный_G,Исходный_B, 2 ), //----------------------------------------------- Координата_исходного_цвета = Старшая_компонента/ tan (( 63.43989 *pi)/ 180 ) + Младшая_компонента/ 2 ; //----------------------------------------------- //----------------------------------------------- if (Старшая_компонента == Исходный_R)R = Старшая_компонента; if (Старшая_компонента == Исходный_G)G = Старшая_компонента; if (Старшая_компонента == Исходный_B)B = Старшая_компонента; //------------------------ if (Средняя_компонента == Исходный_R)R = Средняя_компонента; if (Средняя_компонента == Исходный_G)G = Средняя_компонента; if (Средняя_компонента == Исходный_B)B = Средняя_компонента; //------------------------ if (Младшая_компонента == Исходный_R)R = Младшая_компонента; if (Младшая_компонента == Исходный_G)G = Младшая_компонента; if (Младшая_компонента == Исходный_B)B = Младшая_компонента; //========================================================================================== if (Координата_исходного_цвета <= 127 ) { Тангенс_угла_старшего_треугольника_1 = Старшая_компонента/Координата_исходного_цвета; Тангенс_угла_среднего_треугольника_1 = Средняя_компонента/Координата_исходного_цвета; Тангенс_угла_младшего_треугольника_1 = Младшая_компонента/Координата_исходного_цвета; //----------------------------------------------- Значение_в_точке_преломления_старшей_компоненты = Тангенс_угла_старшего_треугольника_1* 128 ; Значение_в_точке_преломления_средней_компоненты = Тангенс_угла_среднего_треугольника_1* 128 ; Значение_в_точке_преломления_младшей_компоненты = Тангенс_угла_младшего_треугольника_1* 128 ; //----------------------------------------------- Тангенс_угла_старшего_треугольника_2 = ( 255 - Значение_в_точке_преломления_старшей_компоненты)/ 128 ; Тангенс_угла_среднего_треугольника_2 = ( 255 - Значение_в_точке_преломления_средней_компоненты)/ 128 ; Тангенс_угла_младшего_треугольника_2 = ( 255 - Значение_в_точке_преломления_младшей_компоненты)/ 128 ; //----------------------------------------------- for ( int a1 = 0 ; a1 < 128 ; a1++) { Comp_1 = Тангенс_угла_старшего_треугольника_1*a1; Comp_2 = Тангенс_угла_среднего_треугольника_1*a1; Comp_3 = Тангенс_угла_младшего_треугольника_1*a1; //--------------------------------------------------- if (Comp_1 > 255 )Comp_1 = 255 ; if (Comp_1 > 255 )Comp_2 = 255 ; if (Comp_1 > 255 )Comp_3 = 255 ; if (Comp_1 < 0 )Comp_1 = 0 ; //добавлено if (Comp_2 < 0 )Comp_2 = 0 ; //добавлено if (Comp_3 < 0 )Comp_3 = 0 ; //добавлено //--------------------------------------------------- if (R == Старшая_компонента)Первая_компонента = Comp_1; if (R == Средняя_компонента)Первая_компонента = Comp_2; if (R == Младшая_компонента)Первая_компонента = Comp_3; //--------------------------------------------------- if (G == Старшая_компонента)Вторая_компонента = Comp_1; if (G == Средняя_компонента)Вторая_компонента = Comp_2; if (G == Младшая_компонента)Вторая_компонента = Comp_3; //--------------------------------------------------- if (B == Старшая_компонента)Третья_компонента = Comp_1; if (B == Средняя_компонента)Третья_компонента = Comp_2; if (B == Младшая_компонента)Третья_компонента = Comp_3; //--------------------------------------------------- Этот_цвет = ( string ) MathRound (Первая_компонента) + "," + ( string ) MathRound (Вторая_компонента) + "," + ( string ) MathRound (Третья_компонента); //--------------------------------------------------------------------------- Все_оттенки[a1] = Этот_цвет; //--------------------------------------------------------------------------- } //------------------------------------------------------------------------------ for ( int a2 = 255 ; a2 >= a1; a2--) { Comp_1 = 255 - Тангенс_угла_старшего_треугольника_2*q; Comp_2 = 255 - Тангенс_угла_среднего_треугольника_2*q; Comp_3 = 255 - Тангенс_угла_младшего_треугольника_2*q; //--------------------------------------------------- if (Comp_1 > 255 )Comp_1 = 255 ; if (Comp_1 > 255 )Comp_2 = 255 ; if (Comp_1 > 255 )Comp_3 = 255 ; if (Comp_1 < 0 )Comp_1 = 0 ; //добавлено if (Comp_2 < 0 )Comp_2 = 0 ; //добавлено if (Comp_3 < 0 )Comp_3 = 0 ; //добавлено //--------------------------------------------------- if (R == Старшая_компонента)Первая_компонента = Comp_1; if (R == Средняя_компонента)Первая_компонента = Comp_2; if (R == Младшая_компонента)Первая_компонента = Comp_3; //--------------------------------------------------- if (G == Старшая_компонента)Вторая_компонента = Comp_1; if (G == Средняя_компонента)Вторая_компонента = Comp_2; if (G == Младшая_компонента)Вторая_компонента = Comp_3; //--------------------------------------------------- if (B == Старшая_компонента)Третья_компонента = Comp_1; if (B == Средняя_компонента)Третья_компонента = Comp_2; if (B == Младшая_компонента)Третья_компонента = Comp_3; //--------------------------------------------------- Этот_цвет = ( string ) MathRound (Первая_компонента) + "," + ( string ) MathRound (Вторая_компонента) + "," + ( string ) MathRound (Третья_компонента); //--------------------------------------------------------------------------- Все_оттенки[a2] = Этот_цвет; //--------------------------------------------------------------------------- q++; } } //------------------------------------------------------------------------------ if (Координата_исходного_цвета > 127 ) { Тангенс_угла_старшего_треугольника_1 = ( 255 - Старшая_компонента)/( 255 - Координата_исходного_цвета); Тангенс_угла_среднего_треугольника_1 = ( 255 - Средняя_компонента)/( 255 - Координата_исходного_цвета); Тангенс_угла_младшего_треугольника_1 = ( 255 - Младшая_компонента)/( 255 - Координата_исходного_цвета); //----------------------------------------------- Значение_в_точке_преломления_старшей_компоненты = 255 - (Тангенс_угла_старшего_треугольника_1* 128 ); Значение_в_точке_преломления_средней_компоненты = 255 - (Тангенс_угла_среднего_треугольника_1* 128 ); Значение_в_точке_преломления_младшей_компоненты = 255 - (Тангенс_угла_младшего_треугольника_1* 128 ); //----------------------------------------------- Тангенс_угла_старшего_треугольника_2 = Значение_в_точке_преломления_старшей_компоненты/ 128 ; Тангенс_угла_среднего_треугольника_2 = Значение_в_точке_преломления_средней_компоненты/ 128 ; Тангенс_угла_младшего_треугольника_2 = Значение_в_точке_преломления_младшей_компоненты/ 128 ; //----------------------------------------------- for ( int b1 = 0 ; b1 < 128 ; b1++) { Comp_1 = Тангенс_угла_старшего_треугольника_2*b1; Comp_2 = Тангенс_угла_среднего_треугольника_2*b1; Comp_3 = Тангенс_угла_младшего_треугольника_2*b1; //--------------------------------------------------- if (Comp_1 > 255 )Comp_1 = 255 ; if (Comp_1 > 255 )Comp_2 = 255 ; if (Comp_1 > 255 )Comp_3 = 255 ; if (Comp_1 < 0 )Comp_1 = 0 ; //добавлено if (Comp_2 < 0 )Comp_2 = 0 ; //добавлено if (Comp_3 < 0 )Comp_3 = 0 ; //добавлено //--------------------------------------------------- if (R == Старшая_компонента)Первая_компонента = Comp_1; if (R == Средняя_компонента)Первая_компонента = Comp_2; if (R == Младшая_компонента)Первая_компонента = Comp_3; //--------------------------------------------------- if (G == Старшая_компонента)Вторая_компонента = Comp_1; if (G == Средняя_компонента)Вторая_компонента = Comp_2; if (G == Младшая_компонента)Вторая_компонента = Comp_3; //--------------------------------------------------- if (B == Старшая_компонента)Третья_компонента = Comp_1; if (B == Средняя_компонента)Третья_компонента = Comp_2; if (B == Младшая_компонента)Третья_компонента = Comp_3; //--------------------------------------------------- Этот_цвет = ( string ) MathRound (Первая_компонента) + "," + ( string ) MathRound (Вторая_компонента) + "," + ( string ) MathRound (Третья_компонента); //--------------------------------------------------------------------------- Все_оттенки[b1] = Этот_цвет; //--------------------------------------------------------------------------- } //------------------------------------------------------------------------------ for ( int b2 = 255 ; b2 >= b1; b2--) { Comp_1 = 255 - Тангенс_угла_старшего_треугольника_1*q; Comp_2 = 255 - Тангенс_угла_среднего_треугольника_1*q; Comp_3 = 255 - Тангенс_угла_младшего_треугольника_1*q; //--------------------------------------------------- if (Comp_1 > 255 )Comp_1 = 255 ; if (Comp_1 > 255 )Comp_2 = 255 ; if (Comp_1 > 255 )Comp_3 = 255 ; if (Comp_1 < 0 )Comp_1 = 0 ; //добавлено if (Comp_2 < 0 )Comp_2 = 0 ; //добавлено if (Comp_3 < 0 )Comp_3 = 0 ; //добавлено //--------------------------------------------------- if (R == Старшая_компонента)Первая_компонента = Comp_1; if (R == Средняя_компонента)Первая_компонента = Comp_2; if (R == Младшая_компонента)Первая_компонента = Comp_3; //--------------------------------------------------- if (G == Старшая_компонента)Вторая_компонента = Comp_1; if (G == Средняя_компонента)Вторая_компонента = Comp_2; if (G == Младшая_компонента)Вторая_компонента = Comp_3; //--------------------------------------------------- if (B == Старшая_компонента)Третья_компонента = Comp_1; if (B == Средняя_компонента)Третья_компонента = Comp_2; if (B == Младшая_компонента)Третья_компонента = Comp_3; //--------------------------------------------------- Этот_цвет = ( string ) MathRound (Первая_компонента) + "," + ( string ) MathRound (Вторая_компонента) + "," + ( string ) MathRound (Третья_компонента); //--------------------------------------------------------------------------- Все_оттенки[b2] = Этот_цвет; //--------------------------------------------------------------------------- q++; } } //------------------------------------------------------------------------------ } //+------------------------------------------------------------------+ //| Получение значения компонента R | //+------------------------------------------------------------------+ double GetR( const color aColor) { return (aColor& 0xff ); } //+------------------------------------------------------------------+ //| Получение значения компонента G | //+------------------------------------------------------------------+ double GetG( const color aColor) { return ((aColor>> 8 )& 0xff ); } //+------------------------------------------------------------------+ //| Получение значения компонента B | //+------------------------------------------------------------------+ double GetB( const color aColor) { return ((aColor>> 16 )& 0xff ); } //-------------------------------------------------------------------- double Нужная_компонента( double C1, double C2, double C3, int Index) { double Components[ 3 ]; //---------------------------------------------- Components[ 0 ] = C1; Components[ 1 ] = C2; Components[ 2 ] = C3; //---------------------------------------------- ArraySort (Components, WHOLE_ARRAY , 0 , MODE_DESCEND ); //---------------------------------------------- return (Components[Index]); } Реter Konow 2018.10.11 17:55 #122 왼쪽에는 여전히 파란색 선이 있습니다. 우리는 그 이유를 찾아야 합니다. Реter Konow 2018.10.11 18:02 #123 Nikolai Semko : 코드는 어떻습니까? 무슨 소리야, 니콜라스? 당신이 아무것도에 대해 많은 소음을 냈다는 것을 인정할 수 있습니까? 예, 알고리즘이 귀하보다 느릴 수 있으며 몇 가지 버그가 있습니다. 아직 MT5에서 디버깅되지 않았습니다. 하지만 그는 일한다. Реter Konow 2018.10.11 18:22 #124 Yury Kulikov : 알고리즘이 작동하지 않습니다 . 알고리즘이 전체 색상 범위에서 작동한다는 스크립트(시각화로 증명)를 제공하십시오. 제공. 공장. Nikolai의 스크립트와 약간 다릅니다. 파란색 줄무늬는 왼쪽에 있습니다. 하지만 " 알고리즘이 작동하지 않는다 "고 노골적으로 말하는 것은 그다지 현명하지 않다고 생각하지 않습니까? 특히 경험이 많은 사람에게. "MT4가 필요한 이유는 뻔한데... MT4가 널 데려갈거야..." 등등... - 전혀 빛나지 않아. 예, MT4 구문 요구 사항은 MT5의 요구 사항보다 낮습니다. 그러나 속도는 더 낮습니다. 따라서 모든 것이 빠르게 작동하도록 매우 열심히 노력해야 합니다. 그것이 MT4의 목적입니다. 최대 속도를 달성한 다음 MT5로 전환하여 더 많은 속도를 얻으십시오. 개발자로서 이것을 이해해야 합니다. Nikolai Semko 2018.10.11 18:51 #125 Реter Konow : 제공. 공장. Nikolai의 스크립트와 약간 다릅니다. 파란색 줄무늬는 왼쪽에 있습니다. 하지만 " 알고리즘이 작동하지 않는다 "고 노골적으로 말하는 것은 그다지 현명하지 않다고 생각하지 않습니까? 특히 경험이 많은 사람에게. "MT4가 필요한 이유는 뻔한데... MT4가 널 데려갈거야..." 등등... - 전혀 빛나지 않아. 예, MT4 구문 요구 사항은 MT5의 요구 사항보다 낮습니다. 그러나 속도는 더 낮습니다. 따라서 모든 것이 빠르게 작동하도록 매우 열심히 노력해야 합니다. 그것이 MT4의 목적입니다. 최대 속도를 달성한 다음 MT5로 전환하여 더 많은 속도를 얻으십시오. 개발자로서 이것을 이해해야 합니다. 제공하지 않았습니다. mql5 코드 부탁드립니다. Nikolai Semko 2018.10.11 18:56 #126 Реter Konow : 무슨 소리야, 니콜라스? 당신은 아무것도에 대해 많은 소음을 냈다는 것을 인정할 수 있습니까? 예, 알고리즘이 귀하보다 느릴 수 있으며 몇 가지 버그가 있습니다. 아직 MT5에서 디버깅되지 않았습니다. 하지만 그는 일한다. 피터, 그거 알아? Координата_исходного_цвета=Старшая_компонента/ tan (( 63.43989 *pi)/ 180 )+Младшая_компонента/ 2 ; 에 상당하다 Координата_исходного_цвета=Старшая_компонента/ 2 +Младшая_компонента/ 2 ; 접선을 사용하여 숫자 2를 표시하도록 요청했습니다. 곡예 비행. 마음에서 화가. 전화번호 63.43989 Peter's number로 전화합시다. 베드로의 정리: 베드로 수의 탄젠트는 2입니다. Реter Konow 2018.10.11 18:57 #127 Nikolai Semko : 제공하지 않았습니다. mql5 코드 부탁드립니다. 디버깅하여 제공하겠습니다. 내가 못 할 것 같아?)) 알고리즘이 두 플랫폼 모두에서 작동해야 함을 이해합니다. 나는 플랫폼 차이를 조금 과소 평가했다. MT4에서 옮기는 것도 어렵지 않을 거라 판단했습니다. 이 점에서 내가 틀렸다. 그러나 알고리즘의 개념은 정확합니다. MT4에서 보실 수 있습니다. 나는 string type 을 사용하기 때문에 속도는 MT4의 상대방보다 뒤떨어져 있습니다. 나중에 uint 유형으로 옵션을 만들겠습니다. 그런 다음 MT4에서 두 알고리즘의 속도를 비교할 것입니다. 그럼 MT5와의 비교로 넘어 갑시다. Реter Konow 2018.10.11 19:02 #128 О Nikolai Semko : 피터, 그거 알아? 에 상당하다 tan 함수의 경우 매개변수는 도가 아니라 라디안으로 지정됩니다. 탄젠트를 사용하여 숫자 2를 표시하도록 요청했습니다. 곡예 비행. 마음에서 화가. 전화번호 63.43989 Peter's number로 전화합시다. 이해가 안 되시면 도를 라디안으로 변환하겠습니다. tan (( 63.43989 *pi)/ 180 ) 이것은 번역입니다. 도를 라디안으로 또는 그 반대로 변환하는 방법은 온라인에서 찾아보십시오. 예, tan 값 (( 63.43989 *pi)/ 180 )은 일정합니다. 내가 못본거 같은데? 그러나 나는 그렇게 받아들이는 것을 선호합니다. Yury Kulikov 2018.10.11 19:03 #129 Реter Konow : 제공. 공장. Nikolai의 스크립트와 약간 다릅니다. 파란색 줄무늬는 왼쪽에 있습니다. 하지만 " 알고리즘이 작동하지 않는다 "고 노골적으로 말하는 것은 그다지 현명하지 않다고 생각하지 않습니까? 특히 경험이 많은 사람에게. "MT4가 필요한 이유는 뻔한데... MT4가 널 데려갈거야..." 등등... - 전혀 빛나지 않아. 예, MT4 구문 요구 사항은 MT5의 요구 사항보다 낮습니다. 그러나 속도는 더 낮습니다. 따라서 모든 것이 빠르게 작동하도록 매우 열심히 노력해야 합니다. 그것이 MT4의 목적입니다. 최대 속도를 달성한 다음 MT5로 전환하여 더 많은 속도를 얻으십시오. 개발자로서 이것을 이해해야 합니다. 첫 페이지에 제시된 코드는 작동하지 않으며 포럼 회원들의 의견 덕분에 작동이 시작됩니다. 색상 0,0,0 및 255,255,255에서 알고리즘을 테스트합니다. Реter Konow 2018.10.11 19:07 #130 Yury Kulikov : 첫 페이지에 제시된 코드는 작동하지 않으며 포럼 회원들의 의견 덕분에 작동이 시작됩니다. 색상 0,0,0 및 255,255,255에서 알고리즘을 테스트합니다. 이 페이지에서 스크립트를 가져옵니다. 그 안에서 색상 변화의 범위는 Nikolay의 알고리즘에 의해 설정됩니다. 나는 그것에 내 기능을 연결했습니다. 첫 페이지의 스크립트는 Alert를 통해 음영을 표시하기 위한 것입니다. Nikolai의 범위가 만족스럽지 않다면 왜 그의 시각화를 예로 들었습니까? 1...67891011121314151617181920...23 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
추가되었습니다. 이 스크립트를 확인하십시오.
코드는 어떻습니까?
무슨 소리야, 니콜라스?
당신이 아무것도에 대해 많은 소음을 냈다는 것을 인정할 수 있습니까? 예, 알고리즘이 귀하보다 느릴 수 있으며 몇 가지 버그가 있습니다. 아직 MT5에서 디버깅되지 않았습니다. 하지만 그는 일한다.
알고리즘이 작동하지 않습니다 . 알고리즘이 전체 색상 범위에서 작동한다는 스크립트(시각화로 증명)를 제공하십시오.
제공.
공장. Nikolai의 스크립트와 약간 다릅니다. 파란색 줄무늬는 왼쪽에 있습니다. 하지만 " 알고리즘이 작동하지 않는다 "고 노골적으로 말하는 것은 그다지 현명하지 않다고 생각하지 않습니까? 특히 경험이 많은 사람에게.
"MT4가 필요한 이유는 뻔한데... MT4가 널 데려갈거야..." 등등... - 전혀 빛나지 않아. 예, MT4 구문 요구 사항은 MT5의 요구 사항보다 낮습니다. 그러나 속도는 더 낮습니다. 따라서 모든 것이 빠르게 작동하도록 매우 열심히 노력해야 합니다.
그것이 MT4의 목적입니다. 최대 속도를 달성한 다음 MT5로 전환하여 더 많은 속도를 얻으십시오.
개발자로서 이것을 이해해야 합니다.
제공.
공장. Nikolai의 스크립트와 약간 다릅니다. 파란색 줄무늬는 왼쪽에 있습니다. 하지만 " 알고리즘이 작동하지 않는다 "고 노골적으로 말하는 것은 그다지 현명하지 않다고 생각하지 않습니까? 특히 경험이 많은 사람에게.
"MT4가 필요한 이유는 뻔한데... MT4가 널 데려갈거야..." 등등... - 전혀 빛나지 않아. 예, MT4 구문 요구 사항은 MT5의 요구 사항보다 낮습니다. 그러나 속도는 더 낮습니다. 따라서 모든 것이 빠르게 작동하도록 매우 열심히 노력해야 합니다.
그것이 MT4의 목적입니다. 최대 속도를 달성한 다음 MT5로 전환하여 더 많은 속도를 얻으십시오.
개발자로서 이것을 이해해야 합니다.
제공하지 않았습니다. mql5 코드 부탁드립니다.
무슨 소리야, 니콜라스?
당신은 아무것도에 대해 많은 소음을 냈다는 것을 인정할 수 있습니까? 예, 알고리즘이 귀하보다 느릴 수 있으며 몇 가지 버그가 있습니다. 아직 MT5에서 디버깅되지 않았습니다. 하지만 그는 일한다.
피터, 그거 알아?
에 상당하다
접선을 사용하여 숫자 2를 표시하도록 요청했습니다. 곡예 비행.
마음에서 화가.
전화번호 63.43989 Peter's number로 전화합시다.
베드로의 정리:
베드로 수의 탄젠트는 2입니다.
제공하지 않았습니다. mql5 코드 부탁드립니다.
디버깅하여 제공하겠습니다. 내가 못 할 것 같아?))
알고리즘이 두 플랫폼 모두에서 작동해야 함을 이해합니다. 나는 플랫폼 차이를 조금 과소 평가했다. MT4에서 옮기는 것도 어렵지 않을 거라 판단했습니다. 이 점에서 내가 틀렸다.
그러나 알고리즘의 개념은 정확합니다. MT4에서 보실 수 있습니다.
나는 string type 을 사용하기 때문에 속도는 MT4의 상대방보다 뒤떨어져 있습니다.
나중에 uint 유형으로 옵션을 만들겠습니다. 그런 다음 MT4에서 두 알고리즘의 속도를 비교할 것입니다.
그럼 MT5와의 비교로 넘어 갑시다.
Nikolai Semko :
피터, 그거 알아?
에 상당하다
tan 함수의 경우 매개변수는 도가 아니라 라디안으로 지정됩니다.
탄젠트를 사용하여 숫자 2를 표시하도록 요청했습니다. 곡예 비행.
마음에서 화가.
전화번호 63.43989 Peter's number로 전화합시다.
이해가 안 되시면 도를 라디안으로 변환하겠습니다.
이것은 번역입니다. 도를 라디안으로 또는 그 반대로 변환하는 방법은 온라인에서 찾아보십시오.
예, tan 값 (( 63.43989 *pi)/ 180 )은 일정합니다. 내가 못본거 같은데? 그러나 나는 그렇게 받아들이는 것을 선호합니다.
제공.
공장. Nikolai의 스크립트와 약간 다릅니다. 파란색 줄무늬는 왼쪽에 있습니다. 하지만 " 알고리즘이 작동하지 않는다 "고 노골적으로 말하는 것은 그다지 현명하지 않다고 생각하지 않습니까? 특히 경험이 많은 사람에게.
"MT4가 필요한 이유는 뻔한데... MT4가 널 데려갈거야..." 등등... - 전혀 빛나지 않아. 예, MT4 구문 요구 사항은 MT5의 요구 사항보다 낮습니다. 그러나 속도는 더 낮습니다. 따라서 모든 것이 빠르게 작동하도록 매우 열심히 노력해야 합니다.
그것이 MT4의 목적입니다. 최대 속도를 달성한 다음 MT5로 전환하여 더 많은 속도를 얻으십시오.
개발자로서 이것을 이해해야 합니다.
첫 페이지에 제시된 코드는 작동하지 않으며 포럼 회원들의 의견 덕분에 작동이 시작됩니다.
색상 0,0,0 및 255,255,255에서 알고리즘을 테스트합니다.
첫 페이지에 제시된 코드는 작동하지 않으며 포럼 회원들의 의견 덕분에 작동이 시작됩니다.
색상 0,0,0 및 255,255,255에서 알고리즘을 테스트합니다.
이 페이지에서 스크립트를 가져옵니다. 그 안에서 색상 변화의 범위는 Nikolay의 알고리즘에 의해 설정됩니다. 나는 그것에 내 기능을 연결했습니다.
첫 페이지의 스크립트는 Alert를 통해 음영을 표시하기 위한 것입니다.
Nikolai의 범위가 만족스럽지 않다면 왜 그의 시각화를 예로 들었습니까?