+ Îòâåòèòü â òåìå
Ñòðàíèöà 2 èç 8 ÏåðâàÿÏåðâàÿ 1 2 3 4 5 6 7 8 ÏîñëåäíÿÿÏîñëåäíÿÿ
Ïîêàçàíî ñ 11 ïî 20 èç 80

Òåìà: Ïîìîùü â ïðîãðàììèðîâàíèè.

  1. #11
    ClusterDelta.com Member
    Ðåãèñòðàöèÿ
    31.12.2011
    Ñîîáùåíèé
    406
    Ñêàçàë(à) ñïàñèáî
    173
    Ïîáëàãîäàðèëè 483 ðàç(à) â 228 ñîîáùåíèÿõ
    Öèòàòà Ñîîáùåíèå îò member_d Ïîñìîòðåòü ñîîáùåíèå
    Ãîëîâó ñëîìàë. Ïîìîãèòå ïîæàëóéñòà ñ êîäîì. Íèêàê íå ïîëó÷àåòñÿ ïîëó÷èòü èíäåêñ ïðîèçâîëüíîãî áàðà. Õîòåë ÷åðåç èíäåêñ îáðàòèòüñÿ ê öåíàì áàðà. Ìîæåò ñïåöèàëèñòû óêàæóò äðóãîé ïóòü. Çàðàíåå ñïàñèáî.
    Êîä:

    string myday="D"+"'"+Year()+"."+Month()+"."+(Day()-1)+" "+"21"+":"+"00"+"'";
    int mybar=iBarShift(NULL, 0, myday);
    Comment (mybar);
    return(0);

    Êîãäà òðåòüèì ïàðàìåòðîì, íåïîñðåäñòâåííî, ïîäñòàâëÿþ D'2012.11.01 15:00' íàïðèìåð, èíäåêñ áàðà âûâîäèòñÿ íà ýêðàí. Åñëè ïîäñòàâëÿþ ñòðîêó mayday âûäàåò ïÿòèçíà÷íîå ÷èñëî, íå èìåþùåå íè÷åãî îáùåãî ñ èíäåêñîì áàðà.
    íåïîéìó çà÷åì òû ïåðâóþ áóêâó D ïèøåøü â íåé îøèáêà. è åùå ìîæåøü ñäåëàòü ïðåîáðàçîâàíèå ÷èñåë â òðîêó ñ ïîìîùüþ ôóíêöèè Doubletostr

    string myday=Year()+"."+Month()+"."+(Day()-1)+" "+"21"+":"+"00"+"'";
    int mybar=iBarShift(NULL, 0, myday);
    Comment (mybar);
    return(0);

  2. #12
    Ïîëüçîâàòåëü
    Ðåãèñòðàöèÿ
    20.09.2012
    Ñîîáùåíèé
    14
    Ñêàçàë(à) ñïàñèáî
    13
    Ïîáëàãîäàðèëè 7 ðàç(à) â 6 ñîîáùåíèÿõ
    Ïðîáîâàë ÿ è òàê. Ìîæåò ðóêè êðèâûå èëè ìîçãè, ñåé÷àñ âîîáùå íà ðàáîòå è íè÷åãî íå ñîîáðàæàþ. Äåëî â òîì, ÷òî åñëè ôóíêöèþ iBarShift çàäàòü òàê: iBarShift(NULL, 0, D'2012.11.27 15:00') òî îíà âåðíåò èíäåêñ 15-òè ÷àñîâîãî áàðà çà 27-å ÷èñëî. Åñëè æå ïîñòàâèòü ïðîñòî äàòó, òî âîçâðàùàåòñÿ ïÿòèçíà÷íîå ÷èñëî, íåèçâåñòíî ÷òî îçíà÷àþùåå. À ìîæåò ÿ ÷åãî-òî íå ïîíèìàþ.

  3. #13
    ClusterDelta.com Team
    Ðåãèñòðàöèÿ
    27.10.2011
    Ñîîáùåíèé
    4,256
    Ñêàçàë(à) ñïàñèáî
    473
    Ïîáëàãîäàðèëè 2,157 ðàç(à) â 1,128 ñîîáùåíèÿõ
    Öèòàòà Ñîîáùåíèå îò member_d Ïîñìîòðåòü ñîîáùåíèå
    Ïðîáîâàë ÿ è òàê. Ìîæåò ðóêè êðèâûå èëè ìîçãè, ñåé÷àñ âîîáùå íà ðàáîòå è íè÷åãî íå ñîîáðàæàþ. Äåëî â òîì, ÷òî åñëè ôóíêöèþ iBarShift çàäàòü òàê: iBarShift(NULL, 0, D'2012.11.27 15:00') òî îíà âåðíåò èíäåêñ 15-òè ÷àñîâîãî áàðà çà 27-å ÷èñëî. Åñëè æå ïîñòàâèòü ïðîñòî äàòó, òî âîçâðàùàåòñÿ ïÿòèçíà÷íîå ÷èñëî, íåèçâåñòíî ÷òî îçíà÷àþùåå. À ìîæåò ÿ ÷åãî-òî íå ïîíèìàþ.
    à íå ïðîáîâàë ÷åðåç ArrayBSearch ?

    DateTime my_variable=D'2012.11.27 15:00';
    int s = ArrayBsearch(Time,my_variable);

  4. #14
    Ïîëüçîâàòåëü
    Ðåãèñòðàöèÿ
    20.09.2012
    Ñîîáùåíèé
    14
    Ñêàçàë(à) ñïàñèáî
    13
    Ïîáëàãîäàðèëè 7 ðàç(à) â 6 ñîîáùåíèÿõ
    Ñïàñèáî, ïîïðîáóåì. Òîëüêî ÿ íå ìîãó çàäàâàòü ÿâíî äàòó è âðåìÿ. Ýòî áûëà ïîïûòêà ïîëó÷èòü äàòó è âðåìÿ ÷åðåç ïåðåìåííóþ îòíîñèòåëüíî òåêóùåé äàòû. Ïî÷åìó-òî íå ñðàáîòàëî. Âèäèìî ïðèäåòñÿ ÷åðåç îòêðûòèå òåêóùåãî äíÿ îïðåäåëÿòü èíäåêñ áàðà ñ open äíÿ è ïîòîì óæå äàëüøå âãëóáü. Áóäåì äàëüøå ïûòàòü îñòàòêè ìîçãîâ. ß íå ñèëåí â MQL4 è åñëè êòî-òî ñäåëàåò ÷òî-òî ïîäîáíîå áûñòðåå ìåíÿ, áóäó ðàä. Äëÿ ÷åãî ýòî? Ñîáñòâåííî äëÿ òîãî, ÷òî áû ñîçäàòü ìàññèâ îïðåäåëåííîé ðàçìåðåííîñòè, íà÷èíàÿ ñ êàêîãî-òî áàðà è ïîëó÷èòü èç íåãî öåíû äëÿ àíàëèçà.

  5. #15
    Ïîëüçîâàòåëü
    Ðåãèñòðàöèÿ
    01.05.2012
    Àäðåñ
    Êðàñíîäàð
    Ñîîáùåíèé
    4
    Ñêàçàë(à) ñïàñèáî
    0
    Ïîáëàãîäàðèëè 0 ðàç(à) â 0 ñîîáùåíèÿõ
    Êòî ïîìîæåò ÷àéíèêó!
    Õî÷ó ñîçäàòü ïðîñòåíüêèé èíäèêàòîð íà mql4. Ïðÿìîé îòðåçîê ìåæäó äâóìÿ çàäàííûìè òî÷êàìè íà ãðàôèêå. Ñàì íå ñìîã ðàçîáðàòüñÿ êàê ýòî ñäåëàòü, ïî ýòîìó ïèøó ñþäà.

  6. #16
    ClusterDelta.com Team
    Ðåãèñòðàöèÿ
    27.10.2011
    Ñîîáùåíèé
    4,256
    Ñêàçàë(à) ñïàñèáî
    473
    Ïîáëàãîäàðèëè 2,157 ðàç(à) â 1,128 ñîîáùåíèÿõ
    íó âðîäå òàê:

    ObjectCreate(rec_name,OBJ_TREND,0,âðåìÿ1,öåíà1,âðå ìÿ2,öåíà2);
    ObjectSet(rec_name,OBJPROP_RAY, false);
    ObjectSet(rec_name,OBJPROP_COLOR,öâåò);

  7. #17
    Ïîëüçîâàòåëü
    Ðåãèñòðàöèÿ
    01.05.2012
    Àäðåñ
    Êðàñíîäàð
    Ñîîáùåíèé
    4
    Ñêàçàë(à) ñïàñèáî
    0
    Ïîáëàãîäàðèëè 0 ðàç(à) â 0 ñîîáùåíèÿõ
    Îãðîìíîå ñïàñèáî. Åùå âîïðîñ, ýòî â êàêîì ìåñòå íàïèñàòü íóæíî, ïîñëå int init() {, ïîñëå int deinit() {, èëè ïîñëå int start() { -?

  8. #18
    ClusterDelta.com Team
    Ðåãèñòðàöèÿ
    12.11.2011
    Ñîîáùåíèé
    4,067
    Ñêàçàë(à) ñïàñèáî
    627
    Ïîáëàãîäàðèëè 1,776 ðàç(à) â 1,249 ñîîáùåíèÿõ
    ïîâòîðíî
    èùó ÷åëîâåêà êîòîðûé ñîãëàñèòüñÿ çíà÷èòåëüíî óëó÷øèòü èíäèêàòîð

    combo_bars_daily

    åñòü èñõîäíèêè

    äëÿ ìò4 åñòü èíäèêàòîðû

    combo_bars_daily_1.7.ex4

    combo_bars_daily_1.7.zip

    íî íàä íèìè ìîæíî åùå ïîðàáîòàòü
    óëó÷øèòü
    î÷åíü ñèëüíî

    ó íàñ âîîáùå â èíåòå ñòîëüêî ïîëåçíûõ ïîëóñûðûõ èíäþêîâ âàëÿåòñÿ
    à åñëè òàêèå äëÿ íèíçè ñäåëàòü
    äîëæíî âûéòè åùå ëó÷øå

    íàïèøó ïîäðîáíîå ÒÇ


    êòî áóäåò áðàòüñÿ ïèøèòå â ëè÷êó
    Àëåêñàíäð

    ÷òî áû ïîñìîòðåòü êàðòèíêó â ïîëíîì ðàçìåðå - ïðàâîé êíîïêîé ìûøè\ îòêðûòü èçîáðàæåíèå â íîâîé âêëàäêå
    óñòàíîâêà èíäèêàòîðîâ âèäåî https://www.youtube.com/channel/UCax...KqtnrtnrHnOccg

    Òâèòòåð

    ñíà÷àëà ïóáëèêóþ â Telegram

  9. #19
    Ó÷àñòíèê Àâàòàð äëÿ Fox.RM
    Ðåãèñòðàöèÿ
    24.04.2013
    Ñîîáùåíèé
    55
    Ñêàçàë(à) ñïàñèáî
    4
    Ïîáëàãîäàðèëè 40 ðàç(à) â 11 ñîîáùåíèÿõ
    Âîçìîæíî ó êîãî-íèáóäü åñòü èíäèêàòîð äèâåðãåíöèé CumDelta äëÿ ÌÒ4?
    Åñëè íåò ìîæåò, êòî ïîäñêàæåò êàê îïòèìèçèðîâàòü ÝÒÎÒ:

    //+------------------------------------------------------------------+
    //| ClusterDelta_CumDelta_Div.mq4 |
    //+------------------------------------------------------------------+
    #property copyright ""
    #property link ""
    //----
    #property indicator_separate_window
    #property indicator_buffers 4
    #property indicator_color1 Blue
    #property indicator_color2 Green
    #property indicator_color3 Red
    #property indicator_width1 1
    #property indicator_width2 2
    #property indicator_width3 2

    //---- input parameters
    extern string separator3 = "*** Indicator Settings ***";
    extern bool drawDivergenceLines = true;
    extern bool displayAlert = false;
    //---- buffers
    double Momentum[];
    double bullishDivergence[];
    double bearishDivergence[];
    double MomDiv[];
    //----
    static datetime lastAlertTime;
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //---- indicators
    SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 0);
    SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, 0);
    SetIndexStyle(2, DRAW_ARROW, STYLE_SOLID, 0);
    SetIndexStyle(3, DRAW_NONE);
    //----
    SetIndexBuffer(0, Momentum);
    SetIndexBuffer(1, bullishDivergence);
    SetIndexBuffer(2, bearishDivergence);
    SetIndexBuffer(3, MomDiv);
    //----
    SetIndexArrow(1, 233);
    SetIndexArrow(2, 234);
    //----
    IndicatorDigits(Digits + 2);
    IndicatorShortName("ClusterDelta_Div");
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    for(int i = ObjectsTotal() - 1; i >= 0; i--)
    {
    string label = ObjectName(i);
    if(StringSubstr(label, 0, 14) != "DivergenceLine")
    continue;
    ObjectDelete(label);
    }
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int start()
    {
    int countedBars = IndicatorCounted();
    if(countedBars < 0)
    countedBars = 0;
    CalculateIndicator(countedBars);
    return(0);
    }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    void CalculateIndicator(int countedBars)
    {
    for(int i = 300; i >= 0; i--)
    {
    CalculateMomDiv(i);
    CatchBullishDivergence(i + 2);
    CatchBearishDivergence(i + 2);
    }
    }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    void CalculateMomDiv(int i)
    {
    Momentum[i] = iCustom(NULL, 0, "ClusterDelta_CumDelta", 0, i);
    MomDiv[i] = Momentum[i];
    }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    void CatchBullishDivergence(int shift)
    {
    if(IsIndicatorTrough(shift) == false)
    return;
    int currentTrough = shift;
    int lastTrough = GetIndicatorLastTrough(shift);
    if(MomDiv[currentTrough] > MomDiv[lastTrough] && Low[currentTrough] < Low[lastTrough])
    {
    bullishDivergence[currentTrough] = MomDiv[currentTrough];
    if(drawDivergenceLines == true)
    {
    DrawPriceTrendLine(Time[currentTrough], Time[lastTrough], Low[currentTrough],
    Low[lastTrough], Green, STYLE_SOLID);
    DrawIndicatorTrendLine(Time[currentTrough], Time[lastTrough], MomDiv[currentTrough],
    MomDiv[lastTrough], Green, STYLE_SOLID);
    }
    if(displayAlert == true)
    DisplayAlert("Classical bullish divergence on: ", currentTrough);
    }
    if(MomDiv[currentTrough] < MomDiv[lastTrough] && Low[currentTrough] > Low[lastTrough])
    {
    bullishDivergence[currentTrough] = MomDiv[currentTrough];
    if(drawDivergenceLines == true)
    {
    DrawPriceTrendLine(Time[currentTrough], Time[lastTrough], Low[currentTrough],
    Low[lastTrough], Green, STYLE_DOT);
    DrawIndicatorTrendLine(Time[currentTrough], Time[lastTrough], MomDiv[currentTrough],
    MomDiv[lastTrough], Green, STYLE_DOT);
    }
    if(displayAlert == true)
    DisplayAlert("Reverse bullish divergence on: ", currentTrough);
    }
    }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    void CatchBearishDivergence(int shift)
    {
    if(IsIndicatorPeak(shift) == false)
    return;
    int currentPeak = shift;
    int lastPeak = GetIndicatorLastPeak(shift);

    if(MomDiv[currentPeak] < MomDiv[lastPeak] && High[currentPeak] > High[lastPeak])
    {
    bearishDivergence[currentPeak] = MomDiv[currentPeak];
    if(drawDivergenceLines == true)
    {
    DrawPriceTrendLine(Time[currentPeak], Time[lastPeak], High[currentPeak],
    High[lastPeak], Red, STYLE_SOLID);
    DrawIndicatorTrendLine(Time[currentPeak], Time[lastPeak], MomDiv[currentPeak],
    MomDiv[lastPeak], Red, STYLE_SOLID);
    }
    if(displayAlert == true)
    DisplayAlert("Classical bearish divergence on: ", currentPeak);
    }
    if(MomDiv[currentPeak] > MomDiv[lastPeak] && High[currentPeak] < High[lastPeak])
    {
    bearishDivergence[currentPeak] = MomDiv[currentPeak];
    if(drawDivergenceLines == true)
    {
    DrawPriceTrendLine(Time[currentPeak], Time[lastPeak], High[currentPeak],
    High[lastPeak], Red, STYLE_DOT);
    DrawIndicatorTrendLine(Time[currentPeak], Time[lastPeak], MomDiv[currentPeak],
    MomDiv[lastPeak], Red, STYLE_DOT);
    }
    if(displayAlert == true)
    DisplayAlert("Reverse bearish divergence on: ", currentPeak);
    }
    }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    bool IsIndicatorPeak(int shift)
    {
    if(MomDiv[shift] >= MomDiv[shift+1] && MomDiv[shift] > MomDiv[shift+2] &&
    MomDiv[shift] > MomDiv[shift-1])
    return(true);
    else
    return(false);
    }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    bool IsIndicatorTrough(int shift)
    {
    if(MomDiv[shift] <= MomDiv[shift+1] && MomDiv[shift] < MomDiv[shift+2] &&
    MomDiv[shift] < MomDiv[shift-1])
    return(true);
    else
    return(false);
    }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    int GetIndicatorLastPeak(int shift)
    {
    for(int i = shift + 5; i < Bars; i++)
    {
    if(Momentum[i] >= Momentum[i+1] && Momentum[i] >= Momentum[i+2] &&
    Momentum[i] >= Momentum[i-1] && Momentum[i] >= Momentum[i-2])
    {
    for(int j = i; j < Bars; j++)
    {
    if(MomDiv[j] >= MomDiv[j+1] && MomDiv[j] > MomDiv[j+2] &&
    MomDiv[j] >= MomDiv[j-1] && MomDiv[j] > Momentum[j-2])
    return(j);
    }
    }
    }
    return(-1); }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    int GetIndicatorLastTrough(int shift)
    {
    for(int i = shift + 5; i < Bars; i++)
    {
    if(Momentum[i] <= Momentum[i+1] && Momentum[i] <= Momentum[i+2] &&
    Momentum[i] <= Momentum[i-1] && Momentum[i] <= Momentum[i-2])
    {
    for (int j = i; j < Bars; j++)
    {
    if(MomDiv[j] <= MomDiv[j+1] && MomDiv[j] < MomDiv[j+2] &&
    MomDiv[j] <= MomDiv[j-1] && MomDiv[j] < MomDiv[j-2])
    return(j);
    }
    }
    }
    return(-1); }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    void DisplayAlert(string message, int shift)
    {
    if(shift <= 2 && Time[shift] != lastAlertTime)
    {
    lastAlertTime = Time[shift];
    Alert(message, Symbol(), " , ", Period(), " minutes chart");
    }
    }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    void DrawPriceTrendLine(datetime x1, datetime x2, double y1,
    double y2, color lineColor, double style)
    {
    string label = "DivergenceLine2.1# " + DoubleToStr(x1, 0);
    ObjectDelete(label);
    ObjectCreate(label, OBJ_TREND, 0, x1, y1, x2, y2, 0, 0);
    ObjectSet(label, OBJPROP_RAY, 0);
    ObjectSet(label, OBJPROP_COLOR, lineColor);
    ObjectSet(label, OBJPROP_STYLE, style);
    }
    //+------------------------------------------------------------------+
    //| |
    //+------------------------------------------------------------------+
    void DrawIndicatorTrendLine(datetime x1, datetime x2, double y1,
    double y2, color lineColor, double style)
    {
    int indicatorWindow = WindowFind("ClusterDelta_Div");
    if(indicatorWindow < 0)
    return;
    string label = "DivergenceLine2.1$# " + DoubleToStr(x1, 0);
    ObjectDelete(label);
    ObjectCreate(label, OBJ_TREND, indicatorWindow, x1, y1, x2, y2, 0, 0);
    ObjectSet(label, OBJPROP_RAY, 0);
    ObjectSet(label, OBJPROP_COLOR, lineColor);
    ObjectSet(label, OBJPROP_STYLE, style);
    }
    //+------------------------------------------------------------------+

    Æóòêî âåøàåò òåðìèíàë. Èíäèêàòîð íà áàçå äèâåðãåíöèè Momentuma.
    Çàðàíåå ñïàñèáî.

  10. #20
    Ó÷àñòíèê Àâàòàð äëÿ Fox.RM
    Ðåãèñòðàöèÿ
    24.04.2013
    Ñîîáùåíèé
    55
    Ñêàçàë(à) ñïàñèáî
    4
    Ïîáëàãîäàðèëè 40 ðàç(à) â 11 ñîîáùåíèÿõ
    íè ó êîãî íåò ïðåäëîæåíèé?

+ Îòâåòèòü â òåìå
Ñòðàíèöà 2 èç 8 ÏåðâàÿÏåðâàÿ 1 2 3 4 5 6 7 8 ÏîñëåäíÿÿÏîñëåäíÿÿ

Âàøè ïðàâà

  • Âû íå ìîæåòå ñîçäàâàòü íîâûå òåìû
  • Âû íå ìîæåòå îòâå÷àòü â òåìàõ
  • Âû íå ìîæåòå ïðèêðåïëÿòü âëîæåíèÿ
  • Âû íå ìîæåòå ðåäàêòèðîâàòü ñâîè ñîîáùåíèÿ
           

 


(C) 2009-2023 ClusterDelta.com.