fxDreema

    • Register
    • Login
    • Search
    • Back to the main page
    • Categories
    • Recent
    • Tags
    • Popular
    • Search

    Need logic help

    Questions & Answers
    2
    3
    1203
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      rytucker2000 last edited by

      Can someone please tell me how to put this into FxDreema.

      I have my custom RSI MA indicator. I just don't understand the logic behind this...

      extern int RSIPeriod=14;
      extern int Short_RSI_MA_periods=9;
      extern int Long_RSI_MA_periods=45;
      
      int arraysize=200;
         double RSI[];
         double RSI_SMA[];
         ArrayResize(RSI,arraysize);
         ArrayResize(RSI_SMA,arraysize);
         ArraySetAsSeries(RSI,true);
      
         for(int i3=arraysize-1;i3>=0;i3--)
            RSI[i3]=iRSI(NULL,0,RSIPeriod,PRICE_CLOSE,i3);
         for(i3=arraysize-1;i3>=0;i3--)
            RSI_SMA[i3]=iMAOnArray(RSI,0,Short_RSI_MA_periods,0,MODE_SMA,i3);
         double RSI9 =RSI_SMA[1];
      
         for(i3=arraysize-1;i3>=0;i3--)
            RSI[i3]=iRSI(NULL,0,RSIPeriod,PRICE_CLOSE,i3);
         for(i3=arraysize-1;i3>=0;i3--)
            RSI_SMA[i3]=iMAOnArray(RSI,0,Long_RSI_MA_periods,0,MODE_SMA,i3);
         double RSI45 =RSI_SMA[1];
      
      f(RSI9>RSI45) Long=true;
      if(RSI9<RSI45) Short=true;
      

      I think RSI9 is basically the RSI MA 9 line
      and RSI45 is RSI MA 45 line

      so if RSI9>RSI45 then go long and vice versa. Is it that simple?

      Is the i3 the candle ID?
      and what is the arraysize and Arrayresize and ArraySetSeries all about?

      1 Reply Last reply Reply Quote 0
      • fxDreema
        fxDreema last edited by

        You are asking programming questions, but I'm not sure that you will understand what is going on even if we tell you 🙂

        i3 is just some temporary variable that is used in these "for" loops as an index. For each iteration of the loop this variable contains different value. 199, 198, 197... 2, 1, 0. Why this variable is called i3, I don't know.

        Those "Long" and "Short" variables are just variables that are set to true (or not). They are not even defined in this code, so you would get error messages because of that. The whole code was bigger and these variables were used somewhere for some logic. Here in this example they do exactly nothing.

        Arrayresize() is a function to resize an array. But do you know what is an array...

        ArraySetSeries() - better read the documentation for this function. Even I don't understand it fully 🙂

        1 Reply Last reply Reply Quote 0
        • R
          rytucker2000 last edited by

          Thanks for the reply,

          You are right I still don't understand,

          that code is only a sniped of a free EA I got... Don't know where...

          I figured out the rest of it, but that I just don't know, I thought I got it...

          This very basic EA is running but I want to use with something else...

          Here is the whole code... I just want to know, if it is possible, how to get The value of RSI9 and RSI45. I thought is was just the basic Moving average of the RSI, but I'm not getting the same results...

          extern int RSIPeriod=14;
          extern int Short_price_MA_periods=9;
          extern int Long_price_MA_periods=45;
          extern int Short_RSI_MA_periods=9;
          extern int Long_RSI_MA_periods=45;
          extern int Slippage=3;
          extern int pisto=0; //Stochastic Indicator period
          extern int pistok=5; // Stochastic Period(amount of bars) for the calculation of %K line
          extern int pistod=3; //Stochastic Averaging period for the calculation of %D line
          extern int istslow=3; //Stochastic Value of slowdown
          extern int pimacd=0; //Indicator period
          extern int fastpimacd=12; //Averaging period for calculation of a quick MA
          extern int slowpimacd=26; //Averaging period for calculation of a slow MA
          extern int signalpimacd=9; //Averaging period for calculation of a signal line
          extern int piwpr=0; //WPR Indicator period
          extern int piwprbar=14; //WPR Period (amount of bars) for indicator calculation
          extern int pidem=0; //Indicator period
          extern int pidemu=14; //Period of averaging for indicator calculation
          double Lots=1; // that mean 0.1 value if you want 1 lot type 10
          double  tp=17; // take profit
          double  sl=7777; // stop loss
          int start()
          {
             int arraysize=200;
             double RSI[];
             double RSI_SMA[];
             ArrayResize(RSI,arraysize);
             ArrayResize(RSI_SMA,arraysize);
             ArraySetAsSeries(RSI,true);
          
             for(int i3=arraysize-1;i3>=0;i3--)
                RSI[i3]=iRSI(NULL,0,RSIPeriod,PRICE_CLOSE,i3);
             for(i3=arraysize-1;i3>=0;i3--)
                RSI_SMA[i3]=iMAOnArray(RSI,0,Short_RSI_MA_periods,0,MODE_SMA,i3);
             double RSI9 =RSI_SMA[1];
          
             for(i3=arraysize-1;i3>=0;i3--)
                RSI[i3]=iRSI(NULL,0,RSIPeriod,PRICE_CLOSE,i3);
             for(i3=arraysize-1;i3>=0;i3--)
                RSI_SMA[i3]=iMAOnArray(RSI,0,Long_RSI_MA_periods,0,MODE_SMA,i3);
             double RSI45 =RSI_SMA[1];
             double Price45=iMA(NULL,0, Long_price_MA_periods ,0,MODE_LWMA,PRICE_CLOSE,1);
             double Price9 =iMA(NULL,0, Short_price_MA_periods,0,MODE_SMA,PRICE_CLOSE,1);
          
             bool Long=false;
             bool Short=false;
             bool Sideways=false;
             if(Price9>Price45 && RSI9>RSI45) Long=true;
             if(Price9<Price45 && RSI9<RSI45) Short=true;
             if(Price9>Price45 && RSI9<RSI45) Sideways=true;
             if(Price9<Price45 && RSI9>RSI45) Sideways=true;
             if(Long==true  && OrdersTotal()==0)
               {
               if(iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_MAIN,1)<19&&iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_MAIN,0)>=19)
                   {
                   if(iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_MAIN,1)<iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_SIGNAL,1)&&iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_MAIN,0)>=iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_SIGNAL,0))
                      {
                      if(iDeMarker(NULL,pidem,pidemu,1)<0.35&&iDeMarker(NULL,pidem,pidemu,0)>=0.35)                
                            {
                            if (iWPR(NULL,piwpr,piwprbar,1)<-81&&iWPR(NULL,piwpr,piwprbar,0)>=-81)
                               {OrderSend(Symbol(),OP_BUY,Lots/10,Ask,Slippage,Ask-sl*Point,Ask+tp*Point,"Piotrek Buy");}
                            }
                         
                      }
                   }
               }
             if(Short==true && OrdersTotal()==0)
               {
               if(iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_MAIN,1)>81&&iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_MAIN,0)<=81)
                   {
                   if(iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_MAIN,1)>iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_SIGNAL,1)&&iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_MAIN,0)<=iStochastic(NULL,pisto,pistok,pistod,istslow,MODE_EMA,0,MODE_SIGNAL,0))
                       {
                       if(iDeMarker(NULL,pidem,pidemu,1)>0.63&&iDeMarker(NULL,pidem,pidemu,0)<=0.63)   
                             {
                             if (iWPR(NULL,piwpr,piwprbar,1)>-19&&iWPR(NULL,piwpr,piwprbar,0)<=-19)
                               {OrderSend(Symbol(),OP_SELL,Lots/10,Bid,Slippage,Bid+sl*Point,Bid-tp*Point,"Piotrek Sell");}
                             }
                          
                       }
                   }
               }
          }
          

          This is what I have...

          https://fxdreema.com/shared/TeUXByGie

          1 Reply Last reply Reply Quote 0
          • 1 / 1
          • First post
            Last post

          Online Users

          M
          D
          A
          M

          10
          Online

          146.7k
          Users

          22.4k
          Topics

          122.6k
          Posts

          Powered by NodeBB Forums | Contributors