User login

  

Awesome Oscillator

 

Awesome Oscillator indicator

Awesome Oscillator shows the difference in between the 5 SMA and 34 SMA.

If to be precise, 5 SMA of midpoints is subtracted from 34 SMA of midpoints which allows to see the market momentum.

Practical use of Awesome Oscillator

General rules:

When AO is above zero - only Buy orders should be taken.

When AO is below zero - only Sell orders should be taken.

Buy signal:

The signal to Buy comes when AO histogram forms a series of 3 bars, where:

bar 1 - is red.

bar 2 - is red. (Defaults: bar 2 will always be lower than bar 1. No need to worry about the height comparison).

bar 3 is green. (Defaults: bar 3 will always be higher than bar 2. No need to monitor the height again).

Place a pending Buy order above the candlestick which corresponds to the first green bar on the AO histogram.

Sell signal:

Sell when AO is below zero and there is a series of 3 candles where:

candle 1 is green.

candle 2 is green.

candle 3 is red.

Place a pending Sell order below the candlestick which corresponds to the first red bar on the AO histogram.

 

There are 2 other rules for trading with Awesome Oscillator.

1. AO histogram divergence.

2. 4 consecutive bars (green or red) + zero line crossover.

 

Display/hide source code
<metadata>
407c241bb3cbf39e88e446662b5df5903143dfac69002d4295fbe2df3210fdcc103e330398baa888e184630d8ae9402f9ffbb2db98f6583f1528e0c2d2a75226d9bfae83c9f1fcde2c13cef07f43bbd636595f3ba3d6523ebbde2a0af1877e1b6b19dba89df484eb305ec6fb587a5e6f1e30ab9b80a23709526e701e0667127f6104e6d8c382007789ec4231d6b9204ddbbedfe3012e26485435c6ab2a4fcef06854afdb5c250e7ea9cc85bb8fc6acc26d09eb82cead1776394d553a1567073bfdd2225640397505e386310f112d8be78feec9a74b2c0c79adcc56315c39ba84064be1b0ffb3a591c4f8c7e8ddb129487c12d9be1b6e0b6ae5822742c0feb8841d7c87f20175b6de1e713b49546a0445dbae483ce68e4a25fd8f704cdaf5b6d73d485d29422af39cf785ead47d418be8cba49df082f2a6c7f19fbbc25a64e8abc8a7cba68cfcb8d9d4ba235a2e122e012546016e8fe2ccbc3859e28cc1b8fac4f4c8f5964e2134597a17076293fdd2a6c3b0b58b0539af803556cda2c9a487eab3d68ce2087c94e7714f201c7f1c83ec6717502924567e1797f0ec84fb8f6b1809376d2e92fd7909d9a0790bfa932245cfa721550828702f0020a2909aaa93a3fcc9dbf7c4e43b766a0fbbcf1475faab0f7a5c33354188ed780bc6e6e7b4432c9dfb55213f484928d1a3ff9a6a4a89ca214e44364f3fd6f8cff3c4ebafcce9860d7dcbb23f4d91f8f99e70187c08146789b76d51ea8e0d6cbdc9c0a57639a6c0e3a088fa57329ffe3347e88191fe402e92ac2b191128f9d7a190497b99b7bf8d56668aba576f6458b798dfbbed8c96e27d18afe0096f12517e0cb9dc6001d3a792fb117e3658c9f784b8a9cc463e8afaf6b27e1f3f4be184d1ef0030e7d6123ca999310028063e0e0535efdf1627d8e4426d2b4e9de515655612ccad5521aacf2618437faada73125023cdbea4d3f798097b17739ba54579406f780893f294e7790a4433d8b7790bb2d6cff14e72741b23560773f9891c6991e5e6d8ace83f05a0fc0b7b1e6c006f3e54a6c37b18add95f2c306cc191b2c0553af9ad067404653f5b98fd285aecdea8f44616acf869254f0dcbbed3bac3af50340c69c3b1fea2e88ac9a0127caff3de9ae782f09230457d1a80dc97de07690460d9b083e0c6a789fd4b247c0e94e7217d360a200f8ae5f48132461262e0957c08566898a4b3c1dcb988ee5336ea985530ee80a9cab2d7196a2a14ffc365175237e88ea1c4295bb8dd7c12d3b07510645aa4c95425ec80a591aa965e7121537a1f9afc593cc2b05d38721cccaf157047797b4758770e7c3c595036187d1a68204598f6cdae94f1f28139078ab69cf5d8b6f7930f668cefa9c8c1b56807eb99400f0676c3b7056cb8d77d13adde3a1aadde365390e0f495e89a5534c2b64124714c9ebc6f3be89a93e61b7ef3d1261879452a4690f9cda3d1b49fbfc9a7a2c32d40b8dd506dc3e1317d7910fe9057323717a29331130d2d46254e21365aed82aedc7c4180a2210c4b7a5d6b86b1b88f94a3ac9e1627a6903a181a3a17646b1fd2ab711d305581bce7c5e3d384a61c3c5b2c6108e6822753036b9ea3d0f21524c9eb4876fac65d72701cf39a2749b6d3152be1dd523eb4dd89e79bfe3919b2dc4f2e9ef3e4813a07e9cbd19dd2bb6608ff9a4666eedf5371c8e83d5e4b246c00c4ab71039ea383a15f72c0f134022710e6d2b480a591d3e7ad95eac873535f2c9aeedca5482413761c21c9eb67576c4e99b9cabdbed7d0b4cebabfd7d7eaeecc89b81f3d0c32d8e4755a1b770069523c95f04e700834264a650cbdd31772f1d17d13d2b3ec81274204398eac91ddd6bfc4aa3055c6e686b43b196c4c365595faf995acc35c2e6a57b795406de6d04277093cd4e7b2848daf96b67f0c36429ce5274b63069ca12507655585a7b2927c0b375e16724e3a6d05b28f96b4122386a4251b04389bb42b47cda4741a5e3b9aa4dde1250a6f063e504c28442d6b08fc9d67136e011a685d12daaa3a4ecda482ed5e305023c6f81f231d32a6cb88e7e387b1c4b3dff194437d3547ec04345b00db65b8c0e1d93b34f9
</metadata>
//+------------------------------------------------------------------+
//|                                                      Awesome.mq4 |
//|                      Copyright _ 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright _ 2005, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Black
#property  indicator_color2  Green
#property  indicator_color3  Red
 
//---- indicator buffers
double     ExtBuffer0[];
double     ExtBuffer1[];
double     ExtBuffer2[];
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   //---- drawing settings
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   IndicatorDigits(Digits+1);
   SetIndexDrawBegin(0,34);
   SetIndexDrawBegin(1,34);
   SetIndexDrawBegin(2,34);
//---- 3 indicator buffers mapping
   SetIndexBuffer(0,ExtBuffer0);
   SetIndexBuffer(1,ExtBuffer1);
   SetIndexBuffer(2,ExtBuffer2);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("AO");
   SetIndexLabel(1,NULL);
   SetIndexLabel(2,NULL);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Awesome Oscillator                                               |
//+------------------------------------------------------------------+
int start()
  {
   int    limit;
   int    counted_bars=IndicatorCounted();
   double prev,current;
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd
   for(int i=0; i<limit; i++)
      ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i);
//---- dispatch values between 2 buffers
   bool up=true;
   for(i=limit-1; i>=0; i--)
     {
      current=ExtBuffer0[i];
      prev=ExtBuffer0[i+1];
      if(current>prev) up=true;
      if(current<prev) up=false;
      if(!up)
        {
         ExtBuffer2[i]=current;
         ExtBuffer1[i]=0.0;
        }
      else
        {
         ExtBuffer1[i]=current;
         ExtBuffer2[i]=0.0;
        }
     }
//---- done
   return(0);
  }
//+------------------------------------------------------------------+
12345

Comments