Stochastic indicator counts too many intersections in the same time which cause placing too many orders !!
#include<Trade\Trade.mqh> CTrade trade; int StochasticDefinition; //+------------------------------------------------------------------+ void OnInit() { //--- StochasticDefinition=iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,STO_LOWHIGH); if(StochasticDefinition == INVALID_HANDLE) { printf("Error creating \"Stochastic\" indicator"); ExpertRemove(); } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ void OnTick() { static datetime time_bar=0; //--- double KArray[]; double DArray[]; ArraySetAsSeries(KArray,true); ArraySetAsSeries(DArray,true); CopyBuffer(StochasticDefinition,0,0,3,KArray); CopyBuffer(StochasticDefinition,1,0,3,DArray); double KValue0 = KArray[0]; double DValue0 = DArray[0]; double KValue1 = KArray[1]; double DValue1 = DArray[1]; datetime t_bar=iTime(_Symbol,PERIOD_CURRENT,0); if(KValue0<=20 && DValue0<=20) { if((KValue0>DValue0) && (KValue1<DValue1)) { if(time_bar==t_bar) return; time_bar = t_bar; printf("Intersection"); } } if(KValue0>=80 && DValue0>=80) { if((KValue0<DValue0) && (KValue1>DValue1)) { if(time_bar==t_bar) return; time_bar = t_bar; printf("Intersection"); } } } //+------------------------------------------------------------------+
One of the options
Konstantin Nikitin:
Thank you so much.. its much better but still sometimes make two orders for one intersection
One of the options
Konstantin Nikitin:
This is a test. One bar, one position. You can also check the price step.
How can I do that please ?
This is a test. One bar, one position. You can also check the price step.
#include<Trade\Trade.mqh> CTrade trade; input int Step=100; int StochasticDefinition; double prise_buy = DBL_MAX, price_sell = 0.0; //+------------------------------------------------------------------+ void OnInit() { //--- StochasticDefinition=iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,STO_LOWHIGH); if(StochasticDefinition==INVALID_HANDLE) { printf("Error creating \"Stochastic\" indicator"); ExpertRemove(); } } //+------------------------------------------------------------------+ void OnTick() { static datetime time_bar=0; //--- double KArray[]; double DArray[]; ArraySetAsSeries(KArray,true); ArraySetAsSeries(DArray,true); CopyBuffer(StochasticDefinition,0,0,3,KArray); CopyBuffer(StochasticDefinition,1,0,3,DArray); double KValue0 = KArray[0]; double DValue0 = DArray[0]; double KValue1 = KArray[1]; double DValue1 = DArray[1]; double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); datetime t_bar=iTime(_Symbol,PERIOD_CURRENT,0); // open BUY if(prise_buy<=ask) if(KValue0<=20 && DValue0<=20) { if((KValue0>DValue0) && (KValue1<DValue1)) { if(time_bar==t_bar) return; time_bar = t_bar; prise_buy = ask-Step*_Point; price_sell = 0.0; printf("Intersection"); } } // open SELL if(price_sell>=bid) if(KValue0>=80 && DValue0>=80) { if((KValue0<DValue0) && (KValue1>DValue1)) { if(time_bar==t_bar) return; time_bar = t_bar; price_sell = bid+Step*_Point; prise_buy = DBL_MAX; printf("Intersection"); } } } //+------------------------------------------------------------------+
Something like that

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
This is the code I used to make an order according to the Stochastic indicator if it's an intersection under 20 I'll buy and if it's above 80 I'll sell.
But when I run the code I get too many intersections very close to each other which cause my EA to make too many orders;
Please if anyone had had this problem before and found a solution please help me.
Thank you :)