仕事が完了した
![](https://c.mql5.com/i/avatar/avatar_na2.png)
![](https://c.mql5.com/i/avatar/avatar_na2.png)
指定
Hi,
I have coded up a EA that produces buy and sell signals in the EA Journal. I need someone's services that can add the final touches to make it a functioning robot.
Required:
* Trade placed at the the close price of the candle that produces the signal.
* Stop loss placed at the lowest price (for a buy) and the highest price (for a sell) between the stochastic cross that produced the signal and the previous stochastic cross.
* Take profit is a user defined multiplier of the stop loss price (default 1.5X).
* Only one trade open on the same symbol at any time.
* Base account currency of AUD.
* User defined account capital.
* User defined percentage/dollar risk of capital per trade (maximum loss amount for a loosing trade).
* Alerts to phone and app when a buy/sell signal is received.
*Place trade and close trade using the take profit and stop loss with my broker.
Current EA code is below.
//SuperTrend Stochastic Strategy #property copyright "DCowie" //User input Variables input ENUM_TIMEFRAMES Timeframe = PERIOD_CURRENT; input int SuperTrend_ATR_Legnth = 10; input int SuperTrend_Factor = 3; input int Stochastic_K_Legnth = 8; input int Stochastic_K_Smoothing = 3; input int Stochastic_D_Legnth = 3; input int EMA_Legnth = 200; //EA Handles int ATR_SuperTrend_Handle; int Stochastic_Handle; int EMA_Handle; int TotalBars; int OnInit(){ //Definition to only trade once per bar TotalBars = iBars(_Symbol, Timeframe); //Indicator Handle definitions ATR_SuperTrend_Handle = iCustom(_Symbol, Timeframe, "ATR SuperTrend", SuperTrend_ATR_Legnth, SuperTrend_Factor); Stochastic_Handle = iStochastic(_Symbol, Timeframe, Stochastic_K_Legnth, Stochastic_D_Legnth, Stochastic_K_Smoothing,MODE_SMA,STO_LOWHIGH); EMA_Handle = iMA(_Symbol, Timeframe, EMA_Legnth, 0, MODE_EMA, PRICE_CLOSE); return(INIT_SUCCEEDED); } void OnDeinit(const int reason){ } void OnTick(){ //Get number of Bars int bars = iBars(_Symbol, Timeframe); if(TotalBars != bars) { TotalBars = bars; //Data Collection Arrays double ATR_SuperTrend_Array []; double K_Array []; double D_Array []; double EMA_Array[]; double Candle_Close_Price_Array[]; //Sort the array from the current candle backwards ArraySetAsSeries(K_Array, true); ArraySetAsSeries(D_Array, true); ArraySetAsSeries(EMA_Array, true); ArraySetAsSeries(Candle_Close_Price_Array, true); //Fill the array with data CopyBuffer(ATR_SuperTrend_Handle, 0, 0, 3, ATR_SuperTrend_Array); CopyBuffer(Stochastic_Handle, 0, 0, 3, K_Array); CopyBuffer(Stochastic_Handle, 1, 0, 3, D_Array); CopyBuffer(EMA_Handle, 0, 0, 3, EMA_Array); //Get Close Price of Current candle CopyClose(_Symbol, Timeframe, 0, 3, Candle_Close_Price_Array); //Calculate the candle close for the current and previous candles (SuperTrend) double close1 = iClose(_Symbol, Timeframe, 1); double close2 = iClose(_Symbol, Timeframe, 2); //Calculate the Stochastic value for the current candle double K_Value0 = K_Array[0]; double D_Value0 = D_Array[0]; //Calculate the Stochastic value for the last candle double K_Value1 = K_Array[1]; double D_Value1 = D_Array[1]; double K_Value2 = K_Array[2]; double D_Value2 = D_Array[2]; //Calculate the EMA Value for the current and previous candle double EMA_Value0 = EMA_Array[0]; double EMA_Value1 = EMA_Array[1]; //Calculate the candle close for the current and previous candle double CandleClosePrice0 = Candle_Close_Price_Array [0]; double CandleClosePrice1 = Candle_Close_Price_Array [1]; double CandleClosePrice2 = Candle_Close_Price_Array [2]; bool Condition1 = close1 > ATR_SuperTrend_Array [1] && close2 > ATR_SuperTrend_Array [0], Condition2 = K_Value2 > D_Value2 && K_Value1 < D_Value1, Condition3 = D_Value2 > K_Value2 && D_Value1 < K_Value1, Condition4 = CandleClosePrice1 > EMA_Value1, Condition5 = close1 < ATR_SuperTrend_Array [1] && close2 < ATR_SuperTrend_Array [0], Condition6 = CandleClosePrice1 < EMA_Value1; //Buy Condition // If stochastic crosses in either direction and the SuperTrend is GREEN and the candle close is ABOVE the EMA Buy if (Condition1 && Condition4) { if (Condition2 || Condition3){ Print(__FUNCTION__, " >Buy Signal..."); } } //Sell condition //If stochastic crosses in either direction and the SuperTrend is RED and the candle close is BELOW the EMA Sell else if(Condition5 && Condition6) { if (Condition2 || Condition3){ Print(__FUNCTION__, " >Sell Signal..."); } } } }
Thanks for your time and I look forward to hearing from you.
Cheers,
Dale