Use iCustom https://docs.mql4.com/indicators/iCustom or iMA https://docs.mql4.com/indicators/iMA
thanks raptor
but it was to complicated
i found this gave me what i was after
//---- get Moving Average2
ma2=iMA(NULL,0,55,0,MODE_SMA,PRICE_CLOSE,0);
Print ("mov ave 2 ",ma2);
which just prints it out in the journal
then i was able to add or subtract 2 of these
in hind site it seems obvious
but us newbies are dumb
The actual value of any indicator is in the data window just hover the mouse over the part of the chart you are interested in
You said it was too complicated then show your code using iMA ?
this code
gives me the value of each ema
and then the last line subtracts one from the other
leaving "I" as the result
i think i can process this number to give the the information i wanted
Now i want to convert it to a whole number instead of a decimal and then compare that whole number to a setting
//---- get Moving Average
ma=iMA(NULL,0,fast,0,MODE_SMA,PRICE_CLOSE,0);
Print ("mov ave 1 ",ma);
//---- get Moving Average2
ma2=iMA(NULL,0,slow,0,MODE_SMA,PRICE_CLOSE,0);
Print ("mov ave 2 ",ma2);
i= ma-ma2;
Print ("total ",i);
I dont know if the print statements are necessary to make it work or not
but at this stage i was just happy to get a result I presume i got the result i was after
PS hope i make sense to you
regards
PS hope i make sense to you
regards
Ah I see, you already had the MAs calculated . . .
Print does just that, it prints to the Experts/Journal tab . . . if you want to output to the screen you can use Comment instead, it will output on screen top left.
Comment("Total= ",i);
if you just want the whole part of i no decimals at all just do this . . .
int i; instead of . . . double i;
if you want i rounded to the nearest whole number so 1.5 ->2 and 1.49 - > 1 do this . . . .
double i; // <-------- keep this i= MathRound( ma-ma2); Comment("Total= ",i);
can't get an integer from two doubles unless you cast it.
double ma,ma2,ma3,multiplier=10000; //---- get Moving Average ma=iMA(NULL,0,fast,0,MODE_SMA,PRICE_CLOSE,0); Print ("mov ave 1 ",DoubleToStr(ma,Digits); //---- get Moving Average2 ma2=iMA(NULL,0,slow,0,MODE_SMA,PRICE_CLOSE,0); Print ("mov ave 2 ",DoubleToStr(ma2,Digits); ma3= NormalizeDouble((ma-ma2)*multiplier,0); //will give value in pips so need to *10000 Print ("total ",DoubleToStr(ma3,0); //(example only for 4 digit broker)
can't get an integer from two doubles unless you cast it.
nah, don't bother. just do like 'the offspring' says: gotta keep 'em seperated.
I guess you are saying that what I posted was not type casting . . . I better do some reading . . .
well i am using the difference between the 2 emas
therefore the result is always a decimal eg 0.00100 = 100 pips
so to make it a whole number i will multiply it by 10000
if it is a negative number i will remove the " - " sign before i multiply it
i am trying to get the difference of the 2 emas in pips
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
hi guys
I am new to this
i want get the actual value of an ema and subtract it from another value
what i cant figure out is how to get the numerical value
I am sure it is simple but i cannot find reference to it anywhere
thanks in advance