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.
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.
<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); } //+------------------------------------------------------------------+
Comments