xpma 색상 변경 웨이브 (무지개) 도움말 필요
결과 1 - 4 / 4

실: xpma 색상 변경 웨이브 (무지개) 도움말 필요

  1. #1
    안녕하세요 여러분,이 문제에 대해 약간의 도움을 드릴 수 있습니다. 코드에서 약간 조정 해 봤지만, 내 인생에서 슬로프를 조절하는 방법을 알아 내거나 버퍼링 방법을 파악하여 노란색이 조금 더 노란색으로 유지되도록 할 수는 없습니다. 나는 flexichart를 사용하여 5 초 차트를 거래하고 있으며, 추세가 고갈되고 통합 중일 때 물결이 노란색으로 바뀌길 원합니다. 나는이 설정을 현재 lwma로하고있다. 또한 색상이 거꾸로 빨간색으로 올라가고 녹색으로 변하며 각 개별 표시기를 들여다 보지 않고도 색상을 파악하지 못했습니다. 나는 분명히 프로그래머가 아니다.

    다음은 지금까지 가지고있는 코드와 스크린 샷입니다.

    //버전 : 11
    //Last Update Date : 2011 년 5 월 23 일
    // ----------------------------------------------- -------------------
    //| XP 이동 평균 |
    //| xpMA.mq4 |
    //| 코더 스 전문가에 의해 개발 |
    //|
    http://www.xpworx.com|
    // ----------------------------------------------- -------------------
    #property link http://www.xpworx.com
    // ----------------------------------------------- -------------------
    #property indior_chart_window
    #property indior_buffers 4
    #property indior_color1 노란색
    #property indior_color2 녹색
    #property indior_color3 Red
    #property indior_width1 1
    #property indior_width2 1
    #property indior_width3 1
    // ----------------------------------------------- -------------------
    /* 이동 평균 유형 상수 :
    ------------------------------------
    MODE_SMA 0 단순 이동 평균,
    MODE_EMA 1 지수 이동 평균,
    MODE_SMMA 2 Smoothed moving average,
    MODE_LWMA 3 선형 가중 이동 평균.
    MODE_DEMA 4 이중 지수 이동 평균.
    MODE_TEMA 5 트리플 지수 이동 평균.
    MODE_T3MA 6 T3 이동 평균.
    MODE_JMA 7 율리크 이동 평균.
    MODE_HMA 8 선체 이동 평균.
    MODE_DECEMA 9 DECEMA 이동 평균.
    MODE_SALT 10 소금 표시기.
    ------------------------------------ *
    #define MODE_DEMA 4
    #define MODE_TEMA 5
    #define MODE_T3MA 6
    #define MODE_JMA 7
    #define MODE_HMA 8
    #define MODE_DECEMA 9
    #define MODE_SALT 10
    /* 적용 가격 상수 :
    -------------------------------
    PRICE_CLOSE 0 가격을 닫습니다.
    PRICE_OPEN 1 오픈 가격.
    PRICE_HIGH 2 높은 가격.
    PRICE_LOW 3 저렴한 가격.
    PRICE_MEDIAN4 중간 가격, (높음 낮음)2
    PRICE_TYPICAL 5 대표 가격 (최고 최저 마감)3.
    PRICE_WEIGHTED 6 가중 닫는 가격, (높음 낮음 닫기 닫기)4.
    --------------------------------- *
    extern int MA_Period = 25;
    extern int MA_Type = MODE_LWMA;
    extern int MA_Applied = PRICE_CLOSE;
    extern double T3MA_VolumeFactor = 0.8;
    extern double JMA_Phase = 1;
    extern int Step_Period = 1;
    // ----------------------------------------------- -------------------
    extern int BarsCount = 20000;
    extern bool Alert_On = false;
    extern bool Arrows_On = 거짓;
    extern bool Email_On = false;
    // ----------------------------------------------- -------------------
    int UpArrowCode = 241;
    int DownArrowCode = 242;
    color UpArrowColor = 빨강;
    color DownArrowColor = 파랑;
    int UpArrowSize = 3;
    int DownArrowSize = 3;
    // ----------------------------------------------- -------------------
    string pro = xpMA v11;
    string ver =;
    // ----------------------------------------------- -------------------
    이중 UpBuffer [];
    double DownBuffer [];
    이중 buf [];
    더블 버퍼 [];
    이중 tempbuffer [];
    이중 matriple [];
    이중 신호 [];
    // ----------------------------------------------- -------------------
    int nShift;
    이중 점;
    // ----------------------------------------------- -------------------
    int init ()
    {
    ver = GenVer ();
    DeleteObjects ();

    우표 (ver, pro - ver, 15,20);
    문자열 복사 = C 2005-2011 XPWORX. 판권 소유.;
    copy = StringSetChar (copy, 0, '©');
    우표 (저작권, 사본, 15,35);


    IndiorBuffers (7);

    SetIndexStyle (1, DRAW_LINE, STYLE_SOLID, 0);
    SetIndexBuffer (2, UpBuffer);
    SetIndexStyle (1, DRAW_LINE, STYLE_SOLID, 0);
    SetIndexBuffer (1, DownBuffer);
    SetIndexStyle (0, DRAW_LINE, STYLE_SOLID, 0);
    SetIndexBuffer (0, buf);

    SetIndexBuffer (3, 신호);
    SetIndexBuffer (4, 버퍼);
    SetIndexBuffer (5, tempbuffer);
    SetIndexBuffer (6, matriple);

    SetIndexLabel (0, XP 이동 평균);
    SetIndexLabel (1, DownBuffer);
    SetIndexLabel (2, UpBuffer);
    SetIndexLabel (3, 신호);

    스위치 (마침표 ())
    {
    케이스 1 : n 쉬프트 = 5; 단절;
    케이스 5 : n 쉬프트 = 7; 단절;
    케이스 15 : n 쉬프트 = 10; 단절;
    케이스 30 : n 쉬프트 = 15; 단절;
    케이스 60 : n 쉬프트 = 20; 단절;
    케이스 240 : nShift = 30; 단절;
    케이스 1440 : nShift = 80; 단절;
    case 10080 : nShift = 150; 단절;
    경우 43200 : nShift = 250; 단절;
    }

    if (Digits == 2 || Digits == 3) point = 0.01;
    if (Digits == 4 || Digits == 5) point = 0.0001;

    return (0);
    }

    int deinit ()
    {
    DeleteObjects ();
    return (0);
    }

    void start ()
    {
    int 한도;
    int counted_bars = IndiorCounted ();
    if (counted_barslt; 0) return (-1);
    if (counted_barsgt; 0) counted_bars--;
    limit = Bars-counted_bars;

    스위치 (MA_Type)
    {
    case MODE_SMA :
    case MODE_EMA :
    case MODE_SMMA :
    case MODE_LWMA :
    {
    for (int i = 0; ilt; limit; i ) buffer [i] = iMA (NULL, 0, MA_Period, 0, MA_Type, MA_Applied, i);
    단절;
    }
    case MODE_DEMA :
    {
    tempbuffer [i] = iMA (NULL, 0, MA_Period, 0, MODE_EMA, MA_Applied, i); (i = 0, ilt;
    for (i = 0, ilt, limit, i ) matriple [i] = iMAOnArray (임시 버퍼, 0, MA_Period, 0, MODE_EMA, i);
    (i = 0, ilt, limit, i ) buffer [i] = iMAOnArray (matriple, 0, MA_Period, 0, MODE_EMA, i);
    단절;
    }
    case MODE_TEMA :
    {
    tempbuffer [i] = iMA (NULL, 0, MA_Period, 0, MODE_EMA, MA_Applied, i); (i = 0, ilt;
    버퍼 (i = 0; ilt; i ) 버퍼 [i] = iMAOnArray (temp 버퍼, 0, MA_Period, 0, MODE_EMA, i);
    단절;
    }
    case MODE_T3MA :
    {
    (i = 0; ilt; i ) buffer [i] = iCustom (NULL, 0, T3MA, MA_Period, T3MA_VolumeFactor, 0, i);
    단절;
    }
    case MODE_JMA :
    {
    (i = 0; ilt; i ) buffer [i] = iCustom (NULL, 0, JMA, MA_Period, JMA_Phase, 0, i);
    단절;
    }
    case MODE_HMA :
    {
    (i = 0; ilt; i ) buffer [i] = iCustom (NULL, 0, HMA, MA_Period, 0, i);
    단절;
    }
    case MODE_DECEMA :
    {
    (i = 0; ilt; i ) buffer [i] = iCustom (NULL, 0, DECEMA_v1, MA_Period, MA_Applied, 0, i);
    단절;
    }
    case MODE_SALT :
    {
    for (i = 0; ilt; limit; i ) buffer [i] = iCustom (NULL, 0, SATL, 0, i);
    단절;
    }
    }

    if (limitlt; BarsCount) BarsCount = 제한;

    for (int shift = 0; shiftlt; BarsCount; shift )
    {
    UpBuffer [시프트] = 버퍼 [시프트];
    DownBuffer [shift] = 버퍼 [shift];
    buf [shift] = 버퍼 [shift];
    }

    for (shift = 0; shiftlt; BarsCount; shift )
    {
    이중 dMA = 0;
    (int k = shift 1; k lt; = shift Step_Period; k ) dMA = 버퍼 [k];
    dMA = dMAStep_Period;

    if (buffer [shift] lt; dMA) UpBuffer [shift] = EMPTY_VALUE;
    else if (buffer [shift] gt; dMA) DownBuffer [shift] = EMPTY_VALUE;
    그밖에
    {
    UpBuffer [shift] = EMPTY_VALUE;
    DownBuffer [shift] = EMPTY_VALUE;
    }
    }
    for (shift = 0; shiftlt; BarsCount-1; shift )
    {
    신호 [shift] = 0;
    if (UpBuffer [shift 1] == EMPTY_VALUE UpBuffer [교대]! = EMPTY_VALUE buf [교대 1]! = UpBuffer [교대])
    {
    if (Arrows_On shift! = 0) DrawObject (1, shift, buffer [shift] - nShift * point);
    if (Arrows_On shift == 0) DrawOnce (1, shift, buffer [shift] - nShift * point, 0);
    신호 [shift] = 1;
    }

    if (DownBuffer [shift 1] == EMPTY_VALUE DownBuffer [교대]! = EMPTY_VALUE buf [교대 1]! = DownBuffer [교대])
    {
    if (Arrows_On shift! = 0) DrawObject (2, shift, buffer [shift] nShift * point);
    if (Arrows_On shift == 0) DrawOnce (2, shift, buffer [shift] nShift * point, 1);
    신호 [shift] = -1;
    }
    }

    if (UpBuffer [1] == EMPTY_VALUE UpBuffer [0]! = EMPTY_VALUE buf [1]! = UpBuffer [0])
    {
    if (Alert_On) AlertOnce (Symbol () : PeriodToText () - Up 신호, 1);
    if (Email_On) SendMailOnce (xpMA 신호, 기호 () : PeriodToText () - 위로 신호, 1);
    }
    if (DownBuffer [1] == EMPTY_VALUE DownBuffer [0]! = EMPTY_VALUE buf [1]! = DownBuffer [0])
    {
    if (Alert_On) AlertOnce (Symbol () : PeriodToText () - Down 신호, 2);
    if (Email_On) SendMailOnce (xpMA 신호, 기호 () : PeriodToText () - 다운 신호, 2);
    }

    return (0);
    }

    bool DrawOnce (int 방향, int bar, double 가격, int 참조)
    {
    static int LastDraw [10];

    if (LastDraw [ref] == 0 || LastDraw [ref] lt; Bars)
    {
    DrawObject (방향, 막대, 가격);
    LastDraw [ref] = 막대;
    반환 (true);
    }
    return (false);
    }

    void DrawObject (int 방향, int bar, double price)
    {
    정적 int 카운트 = 0;
    count ;
    문자열 Obj =;
    if (direction == 1)/위쪽 화살표
    {
    Obj = xpMA_up_ DoubleToStr (bar, 0);
    ObjectCreate (Obj, OBJ_ARROW, 0, Time [bar], price);
    ObjectSet (Obj, OBJPROP_COLOR, UpArrowColor);
    ObjectSet (Obj, OBJPROP_ARROWCODE, UpArrowCode);
    ObjectSet (Obj, OBJPROP_WIDTH, UpArrowSize);
    }
    if (direction == 2)/아래쪽 화살표
    {
    Obj = xpMA_down_ DoubleToStr (bar, 0);
    ObjectCreate (Obj, OBJ_ARROW, 0, Time [bar], price);
    ObjectSet (Obj, OBJPROP_COLOR, DownArrowColor);
    ObjectSet (Obj, OBJPROP_ARROWCODE, DownArrowCode);
    ObjectSet (Obj, OBJPROP_WIDTH, DownArrowSize);
    }
    WindowRedraw ();
    }

    void DeleteObjects ()
    {
    int objs = ObjectsTotal ();
    문자열 이름;
    for (int cnt = ObjectsTotal () - 1; cntgt; = 0; cnt--)
    {
    name = ObjectName (cnt);
    if (StringFind (name, xpMA, 0) gt; -1) ObjectDelete (name);
    if (StringFind (name, Stamp, 0) gt; -1) ObjectDelete (name);
    WindowRedraw ();
    }
    }

    bool AlertOnce (문자열 msg, int ref)
    {
    static int LastAlert [10];

    if (LastAlert [ref] == 0 || LastAlert [ref] lt; Bars)
    {
    알림 (msg);
    LastAlert [ref] = 막대;
    반환 (true);
    }
    return (false);
    }

    bool SendMailOnce (문자열 제목, 문자열 본문, int ref)
    {
    static int LastAlert [10];

    if (LastAlert [ref] == 0 || LastAlert [ref] lt; Bars)
    {
    SendMail (제목, 본문);
    LastAlert [ref] = 막대;
    반환 (true);
    }
    return (false);
    }

    string PeriodToText ()
    {
    스위치 (마침표 ())
    {
    사례 1 :
    복귀 (M1);
    단절;
    사례 5 :
    귀환 (M5);
    단절;
    케이스 15 :
    귀환 (M15);
    단절;
    사례 30 :
    귀환 (M30);
    단절;
    케이스 60 :
    귀환 (H1);
    단절;
    케이스 240 :
    귀환 (H4);
    단절;
    케이스 1440 :
    복귀 (D1);
    단절;

    귀환 (W1);
    단절;
    사례 43200 :
    귀환 (MN1);
    단절;
    }
    }

    void Stamp (문자열 objName, 문자열 텍스트, int x, int y)
    {
    문자열 Obj = Stamp_ objName;
    int objs = ObjectsTotal ();
    문자열 이름;

    for (int cnt = 0; cntlt; ObjectsTotal (); cnt )
    {
    name = ObjectName (cnt);
    if (StringFind (name, Obj, 0) gt; -1)
    {
    ObjectSet (Obj, OBJPROP_XDISTANCE, x);
    ObjectSet (Obj, OBJPROP_YDISTANCE, y);
    WindowRedraw ();
    }
    그밖에
    {
    ObjectCreate (Obj, OBJ_LABEL, 0,0,0);
    ObjectSetText (Obj, text, 8, arial, Orange);
    ObjectSet (Obj, OBJPROP_XDISTANCE, x);
    ObjectSet (Obj, OBJPROP_YDISTANCE, y);
    WindowRedraw ();
    }
    }
    if (ObjectsTotal () == 0)
    {
    ObjectCreate (Obj, OBJ_LABEL, 0,0,0);
    ObjectSetText (Obj, text, 8, arial, Orange);
    ObjectSet (Obj, OBJPROP_XDISTANCE, x);
    ObjectSet (Obj, OBJPROP_YDISTANCE, y);
    WindowRedraw ();

    }

    return (0);
    }


    string GenVer ()
    {
    문자열 메서드;
    if (MA_Type == 0) method = SMA;
    if (MA_Type == 1) method = EMA;
    if (MA_Type == 2) method = SMMA;
    if (MA_Type == 3) method = LWMA;
    if (MA_Type == 4) method = DEMA;
    if (MA_Type == 5) method = TEMA;
    if (MA_Type == 6) method = T3MA;
    if (MA_Type == 7) method = JMA;
    if (MA_Type == 8) method = HMA;
    if (MA_Type == 9) method = DECEMA;
    if (MA_Type == 10) method = SALT;

    return (메소드 ( MAn Period));
    }



  2. #2
    이것은 멋진 작업이지만 컴파일 할 코드를 얻을 수 없습니다. 게시 할 수있는 MQ4가 있습니까? 매우 감사.

  3. #3
    첨부 파일 1 개
    Quote 원래에 의해 게시 됨 ;
    이것은 멋진 작업이지만 컴파일 할 코드를 얻을 수 없습니다. 게시 할 수있는 MQ4가 있습니까? 매우 감사.
    그래서 코드를 게시 할 때 텍스트로 게시 할 때 코드가 엉망이되므로 항상 CODE 태그 사이에 넣어야합니다. 모든 공간을 제거했으며 현재 컴파일 중입니다.
    https://www.koreaforex.kr/attachment...1313466181.mq4

  4. #4
    고마워. 고마워. 내가 한번 볼게.

게시 권한

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
쿠키 정책
쿠키 정책: koreaforex 웹사이트는 쿠키를 사용하며, 웹사이트를 사용자는 쿠키 사용에 동의하는 것입니다. 자세한 정보는 '쿠키 공개' 를 읽어주십시오.