Combine these 3 indicators in the way described here in this video and it will put you well on your way to consistently profitable trading. The indicators used are Stochastic RSI (K line only), CM Slingshot system (cloud only), and ATR stop loss finder. Play around with this simple trading strategy to improve results as you see fit.
I backtested this for three years and this is not profitable for H1 EURUSD. Why should anyone share a profitable strategy on the web. Please think logically.
Combine these 3 indicators in the way described here in this video and it will put you well on your way to consistently profitable trading. The indicators used are Stochastic RSI (K line only), CM Slingshot system (cloud only), and ATR stop loss finder. Play around with this simple trading strategy to improve results as you see fit.
Three years EURUSD H1: 170 trades.
Combine these 3 indicators in the way described here in this video and it will put you well on your way to consistently profitable trading. The indicators used are Stochastic RSI (K line only), CM Slingshot system (cloud only), and ATR stop loss finder. Play around with this simple trading strategy to improve results as you see fit.
And this is the EA source. I cannot show you the ATR stop finder code.
#include <Trade\Trade.mqh> CTrade trade; int stoch_handle=0; int handle_62=0; int handle_38=0; int handle_atrslf=0; int OnInit() { stoch_handle=iStochastic(_Symbol, PERIOD_CURRENT, 3,3,14,MODE_SMA,STO_CLOSECLOSE); handle_38=iMA(_Symbol, PERIOD_CURRENT, 38,0, MODE_EMA,PRICE_CLOSE); handle_62=iMA(_Symbol, PERIOD_CURRENT, 62,0, MODE_EMA,PRICE_CLOSE); handle_atrslf=iCustom(_Symbol, PERIOD_CURRENT, "ATRSLF"); return(INIT_SUCCEEDED); } datetime timer=NULL; void OnTick() { if(timer==NULL){} else if(timer==iTime(_Symbol, PERIOD_CURRENT, 0)) return ; timer=iTime(_Symbol, PERIOD_CURRENT, 0); ////////////////////////////////////////////////////////////////////////// bool sell_condition=true; sell_condition &= stoch_sell(1); sell_condition &= previous_sell_price()>iHigh(_Symbol, PERIOD_CURRENT, 1); sell_condition &= sling_38(1)<sling_62(1); sell_condition &= sling_38(1)<iHigh(_Symbol, PERIOD_CURRENT, 1); double Bid=SymbolInfoDouble(_Symbol, SYMBOL_BID); if(sell_condition && PositionsTotal()==0) { trade.Sell(0.01, _Symbol, Bid, atr_upper(1), Bid-1.1*(atr_upper(1)-Bid), NULL); } ////////////////////////////////////////////////////////////////////////// bool buy_condition=true; buy_condition &= stoch_buy(1); buy_condition &= previous_buy_price()<iLow(_Symbol, PERIOD_CURRENT, 1); buy_condition &= sling_38(1)>sling_62(1); buy_condition &= sling_38(1)>iLow(_Symbol, PERIOD_CURRENT, 1); double Ask=SymbolInfoDouble(_Symbol, SYMBOL_ASK); if(buy_condition && PositionsTotal()==0) { trade.Buy(0.01, _Symbol, Ask, atr_lower(1), Ask+1.1*(Ask-atr_lower(1)), NULL); } } bool stoch_sell(int i) { double array[]; ArraySetAsSeries(array, true); CopyBuffer(stoch_handle, 0, i, 1, array); return array[0]>80; } bool stoch_buy(int i) { double array[]; ArraySetAsSeries(array, true); CopyBuffer(stoch_handle, 0, i, 1, array); return array[0]<20; } double sling_38(int i) { double array[]; ArraySetAsSeries(array, true); CopyBuffer(handle_38, 0, i, 1, array); return array[0]; } double sling_62(int i) { double array[]; ArraySetAsSeries(array, true); CopyBuffer(handle_62, 0, i, 1, array); return array[0]; } double previous_sell_price() { int index=0; while(!stoch_buy(index)) index++; while(!stoch_sell(index)) index++; double max=-1000; for(int i=index;i<index+10;i++) max=MathMax(max, iHigh(_Symbol, PERIOD_CURRENT, i)); return max; } double previous_buy_price() { int index=0; while(!stoch_sell(index)) index++; while(!stoch_buy(index)) index++; double min=1000; for(int i=index;i<index+10;i++) min=MathMin(min, iLow(_Symbol, PERIOD_CURRENT, i)); return min; } double atr_upper(int i) { double array[]; ArraySetAsSeries(array, true); CopyBuffer(handle_atrslf, 6, i, 1, array); return array[0]; } double atr_lower(int i) { double array[]; ArraySetAsSeries(array, true); CopyBuffer(handle_atrslf, 7, i, 1, array); return array[0]; }
-
stoch_handle=iStochastic(_Symbol, PERIOD_CURRENT, 3,3,14,MODE_SMA,STO_CLOSECLOSE);
The video/strategy used a stochastic of the RSI. You are using stochastic of price. You didn't implement it correctly.
-
trade.Sell(0.01, _Symbol, Bid, atr_upper(1), Bid-1.1*(atr_upper(1)-Bid), NULL); trade.Buy(0.01, _Symbol, Ask, atr_lower(1), Ask+1.1*(Ask-atr_lower(1)), NULL);
You buy at the Ask and sell at the Bid. Pending Buy Stop orders become market orders when hit by the Ask.
-
Your buy order's TP/SL (or Sell Stop's/Sell Limit's entry) are triggered when the Bid / OrderClosePrice reaches it. Using Ask±n, makes your SL shorter and your TP longer, by the spread. Don't you want the specified amount used in either direction?
-
Your sell order's TP/SL (or Buy Stop's/Buy Limit's entry) will be triggered when the Ask / OrderClosePrice reaches it. To trigger close at a specific Bid price, add the average spread.
MODE_SPREAD (Paul) - MQL4 programming forum - Page 3 #25 -
The charts show Bid prices only. Turn on the Ask line to see how big the spread is (Tools → Options (control+O) → charts → Show ask line.)
Most brokers with variable spreads widen considerably at end of day (5 PM ET) ± 30 minutes.
My GBPJPY shows average spread = 26 points, average maximum spread = 134.
My EURCHF shows average spread = 18 points, average maximum spread = 106.
(your broker will be similar).
Is it reasonable to have such a huge spreads (20 PIP spreads) in EURCHF? - General - MQL5 programming forum (2022)
-
-
The video/strategy used a stochastic of the RSI. You are using stochastic of price. You didn't implement it correctly.
-
You buy at the Ask and sell at the Bid. Pending Buy Stop orders become market orders when hit by the Ask.
-
Your buy order's TP/SL (or Sell Stop's/Sell Limit's entry) are triggered when the Bid / OrderClosePrice reaches it. Using Ask±n, makes your SL shorter and your TP longer, by the spread. Don't you want the specified amount used in either direction?
-
Your sell order's TP/SL (or Buy Stop's/Buy Limit's entry) will be triggered when the Ask / OrderClosePrice reaches it. To trigger close at a specific Bid price, add the average spread.
MODE_SPREAD (Paul) - MQL4 programming forum - Page 3 #25 -
The charts show Bid prices only. Turn on the Ask line to see how big the spread is (Tools → Options (control+O) → charts → Show ask line.)
Most brokers with variable spreads widen considerably at end of day (5 PM ET) ± 30 minutes.
My GBPJPY shows average spread = 26 points, average maximum spread = 134.
My EURCHF shows average spread = 18 points, average maximum spread = 106.
(your broker will be similar).
Is it reasonable to have such a huge spreads (20 PIP spreads) in EURCHF? - General - MQL5 programming forum (2022)
-
Thanks. I will do the modifications necessary tomorrow and get back with the new results.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Combine these 3 indicators in the way described here in this video and it will put you well on your way to consistently profitable trading. The indicators used are Stochastic RSI (K line only), CM Slingshot system (cloud only), and ATR stop loss finder. Play around with this simple trading strategy to improve results as you see fit.