CONVERSION DODA STIOCHASTIC FROM MT4 TO PRT

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #172848 quote
    confutatusconfutatus
    Participant
    Junior

    [attachment file=”172849″]

    MT4 CODE:

    #property indicator_separate_window
    #property indicator_minimum 0.00
    #property indicator_maximum 100.00
    #property indicator_color1 Lime
    #property indicator_buffers 2
    #property indicator_color2 Red
    #property indicator_level1 20
    #property indicator_level2 80

    //+——————————————————————+
    //| Common External variables |
    //+——————————————————————+

    //+——————————————————————+
    //| External variables |
    //+——————————————————————+
    extern double Slw = 8;
    extern double Pds = 13;
    extern double Slwsignal = 9;
    extern int Barcount = 2000;

    //+——————————————————————+
    //| Special Convertion Functions |
    //+——————————————————————+

    int LastTradeTime;
    double ExtHistoBuffer[];
    double ExtHistoBuffer2[];
    bool BuyAlert=false, SellAlert=false;

    void SetLoopCount(int loops)
    {
    }

    void SetIndexValue(int shift, double value)
    {
    ExtHistoBuffer[shift] = value;
    // Print (“ExtHistoBuffer :” ,value); // green
    }

    void SetIndexValue2(int shift, double value)
    {
    ExtHistoBuffer2[shift] = value;
    // Print (“ExtHistoBuffer2 :” ,value); // green
    }

    double GetIndexValue(int shift)
    {
    return(ExtHistoBuffer[shift]);
    }

    double GetIndexValue2(int shift)
    {
    return(ExtHistoBuffer2[shift]);
    }

    //+——————————————————————+
    //| End |
    //+——————————————————————+

    //+——————————————————————+
    //| Initialization |
    //+——————————————————————+

    int init()
    {
    SetIndexStyle(0, DRAW_LINE, STYLE_SOLID);
    SetIndexBuffer(0, ExtHistoBuffer);

    SetIndexStyle(1, DRAW_LINE, STYLE_SOLID);
    SetIndexBuffer(1, ExtHistoBuffer2);

    return(0);
    }
    int start()
    {
    //+——————————————————————+
    //| Local variables |
    //+——————————————————————+
    double AA = 0;
    double bb = 0;
    double aa1 = 0;
    double cnt1 = 0;
    int shift = 0;
    double cnt = 0;
    double loopbegin = 0;
    double loopbegin2 = 0;
    double loopbegin3 = 0;
    bool first = True;
    double prevbars = 0;
    double sum = 0;
    double smconst = 0;
    double smconst1 = 0;
    double prev = 0;
    double prev1 = 0;
    double prev2 = 0;
    double prev3 = 0;
    double weight = 0;
    double linear = 0;
    double MAValue = 0;
    double MAValue2 = 0;
    double mavalue3 = 0;
    string MAstring = “”;
    double MyHigh = 0;
    double MyLow = 0;
    int counter = 0;
    double Price = 0;
    double Price1 = 0;
    double tmpDevAA = 0;

    SetLoopCount(0);
    smconst = 2 / (1+Slw);
    smconst1 = 2 / (1+Slwsignal);

    loopbegin = loopbegin+1;
    for(shift =Barcount;shift >=0 ;shift –)
    {
    prev = GetIndexValue2(shift+1);

    // Yousky 15/05/2006 – Change to avoid Zero divide exception.
    AA = 0;
    tmpDevAA = (High[Highest(NULL, 0, MODE_HIGH,shift+Pds,Pds)] – Low[Lowest(NULL, 0, MODE_LOW,shift+Pds,Pds)]);

    if (tmpDevAA != 0)
    AA = 100* ((Close[shift] – Low[Lowest(NULL, 0, MODE_LOW,shift+Pds,Pds)]) / tmpDevAA);
    // —

    MAValue2 = smconst * (AA-prev) + prev;

    SetIndexValue2(shift,MAValue2);

    loopbegin = loopbegin-1;

    }

     

    loopbegin2 = loopbegin2+1;
    for(shift =Barcount-Pds;shift >=0 ;shift –){
    MyHigh = -999999;
    MyLow = 99999999;
    for(counter =shift;counter <=Pds + shift ;counter ++){
    Price= GetIndexValue2(counter);
    if( Price > MyHigh )
    MyHigh = Price;
    if( Pds <= 0 )
    MyHigh = Price;
    if( Price < MyLow )
    MyLow = Price;
    if( Pds <= 0 )
    MyLow = Price;
    }

    prev1 = GetIndexValue(shift+1);
    aa1=GetIndexValue2(shift);

    // Yousky 15/05/2006 – Change to avoid Zero divide exception.
    bb= 0;
    if ((MyHigh-MyLow) != 0)
    bb=100*(aa1-MyLow)/(MyHigh-MyLow);
    // —

     

    MAValue = smconst * (bb-prev1) + prev1;

    SetIndexValue(shift,MAValue);

    loopbegin2 = loopbegin2-1;
    }

    //Print (MAValue); // green

    loopbegin3 = loopbegin3+1;
    for(shift =Barcount;shift >=0 ;shift –){
    prev2=GetIndexValue2(shift+1);
    prev3=GetIndexValue(shift);
    mavalue3= smconst1 * (prev3-prev2) +prev2;

    SetIndexValue2(shift,mavalue3);
    loopbegin3 = loopbegin3-1;

     

     

    }

    if(ExtHistoBuffer[0] > ExtHistoBuffer2[0] && ExtHistoBuffer[0]<20.1 && ExtHistoBuffer2[0] < 20.1 && BuyAlert==False)
    {

    Alert (“Doda-Stochastic says Buy “,Symbol(),” at “,Close[0]);
    BuyAlert = True;
    SellAlert = False;
    }

    if(ExtHistoBuffer2[0] > ExtHistoBuffer[0] && ExtHistoBuffer[0]>80.1 && ExtHistoBuffer2[0] > 80.1 && SellAlert==False)
    {
    // sell signal
    Alert (“Doda-Stochastic says Sell “,Symbol(),” at “,Close[0]);
    BuyAlert = false;
    SellAlert = True;

    }

    }

    DDSTO-1.png DDSTO-1.png
Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

CONVERSION DODA STIOCHASTIC FROM MT4 TO PRT


ProBuilder: Indicators & Custom Tools

New Reply
Author
author-avatar
confutatus @confutatus Participant
Summary

This topic contains 1 voice and has 0 replies.

Topic Details
Forum: ProBuilder: Indicators & Custom Tools
Language: English
Started: 06/30/2021
Status: Active
Attachments: 1 files
ProRealCode ProRealCode
Loading...