//+------------------------------------------------------------------+ //| Test.mq4 | //| Copyright © 2012, Yury V. Reshetov | //| http://reshetov.xnet.uz | //+------------------------------------------------------------------+ #property copyright "Copyright © 2012, Yury V. Reshetov" #property link "http://reshetov.xnet.uz" //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- int i = 0; double max = 0; for (int p = 3; p < 36; p++) { int b = Bars - 2 * p; double bb = b; double averageprice = 0; for (i = 0; i < b; i++) { averageprice = averageprice + Open[i] - Open[i + p]; } averageprice = averageprice / bb; double averageindicator = 0; for (i = 0; i < b; i++) { averageindicator = averageindicator + indicator(p, i + p) - indicator(p, i + 2 * p); } averageindicator = averageindicator / bb; double s1 = 0; double s2 = 0; double s3 = 0; for (i = 0; i < b; i++) { double price = Open[i] - Open[i + p] - averageprice; double ind = indicator(p, i + p) - indicator(p, i + 2 * p) - averageindicator; s1 = s1 + price * price; s2 = s2 + ind * ind; s3 = s3 + price * ind; } double r = s3 / MathSqrt(s1 * s2); if (MathAbs(r) > max) { max = MathAbs(r); Comment("R = ", r, ", p = ", p); } } //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- //---- return(0); } //+------------------------------------------------------------------+ double indicator(int p, int shift) { return(iRSI(Symbol(), 0, p, PRICE_OPEN, shift)); //return(iMA(Symbol(), 0, p, 0, MODE_SMA, PRICE_OPEN, shift)); }