مشاهدة النسخة كاملة : مؤشر Rainbow Oscillator
ابو جراح
01-07-2014, 01:52 PM
السلامة عليكم
مؤشر جميل ، قوي جدا على فريم اليومي
بحثت عنه في جميع المواقع لم اجده
او بالاحرى لا يوجد بصيغة mt
لا اعرف السبب ! مع انه من اقوى المؤشرات
مشاهدتي له عن طريق الصدفة في منصة kiwi trader
ارجو من الاخوة المبرمجين صياغته ليعمل كمؤشر للميتا تريدر
استاذ العوامي فتحت هذا الموضوع في منتدى اخر ولم اجد تجاوب يذكر
ابو جراح
01-07-2014, 01:54 PM
EFS Code:
PHP Code:
/*********************************
Provided By:
eSignal (Copyright c eSignal), a division of Interactive Data
Corporation. 2009. All rights reserved. This sample eSignal
Formula Script (EFS) is for educational purposes only and may be
modified and saved under a new file name. eSignal is not responsible
for the functionality once modified. eSignal reserves the right
to modify and overwrite this EFS file with each new release.
Description:
Rainbow Oscillator
Version: 1.0 04/29/2009
Formula Parameters: Default:
Length 2
Levels 10
Source of Price Close
Notes:
Mel Widner introduced a colorful technique for plotting an indicator to
signal trend changes. The indicator is derived from a consensus of trends
that, when plotted in color, has the appearance of a rainbow.
**********************************/
var fpArray = new Array();
var bInit = false;
function preMain() {
setPriceStudy(false);
setStudyTitle("Rainbow Oscillator");
setCursorLabelName("URB", 0);
setCursorLabelName("LRB", 1);
setCursorLabelName("RainbowOsc", 2);
setDefaultBarFgColor(Color.red, 0);
setDefaultBarFgColor(Color.blue, 1);
setDefaultBarFgColor(Color.yellow, 2);
setPlotType(PLOTTYPE_LINE, 0);
setPlotType(PLOTTYPE_LINE, 1);
setPlotType(PLOTTYPE_HISTOGRAM, 2);
setStudyMax(101);
setStudyMin(-101);
var x = 0;
fpArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setLowerLimit(1);
setDefault(2);
}
fpArray[x] = new FunctionParameter("Levels", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setLowerLimit(0);
setUpperLimit(10);
setDefault(10);
}
fpArray[x] = new FunctionParameter("sPrice", FunctionParameter.STRING);
with(fpArray[x++]){
setName("Source of Price");
addOption("open");
addOption("high");
addOption("low");
addOption("close");
addOption("hl2");
addOption("hlc3");
addOption("ohlc4");
setDefault("close");
}
}
var xRainbowBW = null;
var xRainbowOsc = null;
function main(sPrice, Length, Levels) {
var nBarState = getBarState();
var nRainbowBW = 0;
var nRainbowOsc = 0;
if (nBarState == BARSTATE_ALLBARS) {
if (sPrice == null) sPrice = "close";
if (Length == null) Length = 2;
if ((Levels == null) || (Levels > 10) || (Levels <= 0)) Levels = 10;
}
if (bInit == false) {
xRainbowBW = efsInternal("Calc_Rainbow", sPrice, Length, Levels);
xRainbowOsc = getSeries(xRainbowBW, 1);
bInit = true;
}
nRainbowBW = xRainbowBW.getValue(0);
nRainbowOsc = xRainbowOsc.getValue(0);
if (nRainbowOsc == null) return;
if (nRainbowOsc > 0) setBarFgColor(Color.red, 2);
else setBarFgColor(Color.blue, 2);
return new Array(nRainbowBW, -nRainbowBW, nRainbowOsc);
}
var bSecondInit = false;
var xPrice = null;
var xMA1 = null;
var xMA2 = null;
var xMA3 = null;
var xMA4 = null;
var xMA5 = null;
var xMA6 = null;
var xMA7 = null;
var xMA8 = null;
var xMA9 = null;
var xMA10 = null;
var xHH = null;
var xLL = null;
function Calc_Rainbow(sPrice, Length , Levels) {
var Avg = new Array(0,0,0,0,0,0,0,0,0,0);
var nRainbowBW = 0;
var nRainbowOsc = 0;
var HiPrice = 0;
var LoPrice = 0;
var HiAvg = 0;
var LoAvg = 0;
var AvgAvgs = 0;
var i = 0;
if (bSecondInit == false) {
xPrice = eval(sPrice)();
xMA1 = sma(Length, xPrice);
xMA2 = sma(Length, xMA1);
xMA3 = sma(Length, xMA2);
xMA4 = sma(Length, xMA3);
xMA5 = sma(Length, xMA4);
xMA6 = sma(Length, xMA5);
xMA7 = sma(Length, xMA6);
xMA8 = sma(Length, xMA7);
xMA9 = sma(Length, xMA8);
xMA10 = sma(Length, xMA9);
xHH = upperDonchian(Levels, xPrice);
xLL = lowerDonchian(Levels, xPrice);
bSecondInit = true;
}
Avg[0] = xMA1.getValue(0);
Avg[1] = xMA2.getValue(0);
Avg[2] = xMA3.getValue(0);
Avg[3] = xMA4.getValue(0);
Avg[4] = xMA5.getValue(0);
Avg[5] = xMA6.getValue(0);
Avg[6] = xMA7.getValue(0);
Avg[7] = xMA8.getValue(0);
Avg[8] = xMA9.getValue(0);
Avg[9] = xMA10.getValue(0);
HiPrice = xHH.getValue(0);
LoPrice = xLL.getValue(0);
if (Avg[9] == null) return;
HiAvg = Avg[0];
LoAvg = Avg[0];
for (i = 0; i < Levels; i++) {
if (Avg[i] > HiAvg) HiAvg = Avg[i];
if (Avg[i] < LoAvg) LoAvg = Avg[i];
}
for (i = 0; i < Levels; i++) {
AvgAvgs += Avg[i];
}
AvgAvgs = AvgAvgs / Levels;
if ((HiPrice - LoPrice) != 0) {
if (xPrice.getValue(0) > HiAvg) HiAvg = xPrice.getValue(0);
if (xPrice.getValue(0) < LoAvg) LoAvg = xPrice.getValue(0);
nRainbowBW = 100 * ((HiAvg - LoAvg) / (HiPrice - LoPrice));
nRainbowOsc = 100 * ((close(0) - AvgAvgs) / (HiPrice - LoPrice));
}
return new Array(nRainbowBW, nRainbowOsc);
}
اسلام العوامى
03-07-2014, 10:28 AM
السلامة عليكم
مؤشر جميل ، قوي جدا على فريم اليومي
بحثت عنه في جميع المواقع لم اجده
او بالاحرى لا يوجد بصيغة mt
لا اعرف السبب ! مع انه من اقوى المؤشرات
مشاهدتي له عن طريق الصدفة في منصة kiwi trader
ارجو من الاخوة المبرمجين صياغته ليعمل كمؤشر للميتا تريدر
استاذ العوامي فتحت هذا الموضوع في منتدى اخر ولم اجد تجاوب يذكر
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،، اهلا بك ابو جراح ، سأحاول البحث عن المؤشر وارفقه لك،،،
،،،تحياتى،،،
ابو جراح
03-07-2014, 08:58 PM
Hello Khaled
I'm sorry we do not have mt4 version.
If you have some skills in programming you can convert to MQL.
I've attach some documantation.
Source code:
r1:=Mov(C,2,S); r2:=Mov(r1,2,S);
r3:=Mov(r2,2,S); r4:=Mov(r3,2,S);
r5:=Mov(r4,2,S); r6:=Mov(r5,2,S);
r7:=Mov(r6,2,S); r8:=Mov(r7,2,S);
r9:=Mov(r8,2,S); r10:=Mov(r9,2,S);
RMin:=Min(R1,
Min((R2),Min((R3),
Min((R4),Min((R5),Min((R6),
Min((R7),Min((R8),Min((R9),R10)))))))));
RMax:=Max(R1,
Max((R2),Max((R3),
Max((R4),Max((R5),Max((R6),
Max((R7),Max((R8),Max((R9),R10)))))))));
RBLow:=-100 *(RMin - RMax) /(HHV(C,10) - LLV(C,10));
RBUp:=100 *(RMin - RMax) /(HHV(C,10) - LLV(C,10));
ROsc:=100 *(CLOSE - ((R1+R2+R3+R4+R5+R6+R7+R8+R9+R10) / 10)) /
(HHV(C,10) - LLV(C,10));
Plot(ROsc, 'Osc', 'Blue', 0, 'diagramm');
Plot(RBLow, 'Band Low', 'Teal', 0, 'solid');
Plot(RBUp, 'Band Up', 'Teal', 0, 'solid');
هذا هو الكود الاصلي للمؤشر
بعد مراسلة البروكر
vBulletin® v3.8.8