Trabalho concluído
![](https://c.mql5.com/i/avatar/avatar_na2.png)
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Termos de Referência
This will be a semiautomatic expert.
User will plot VWAP on chart and robot will operate based on plotted VWAP.
The robot must be able to trade more than one currency pair at the same time.
Requirement:
->There must be a function to calculate the price VWAP from a certain point.
There is already an indicator that does this. He calls it VWAP Midas.
* When the indicator is plotted on a top it calculates the VWAP taking into account the High:
{
double sumPrice=0,sumVol=0;
for(int i=startVWAP; i<iRatesTotal; i++)
{
sumPrice += Price(iHigh ,i)*iVolume[i];
sumVol += iVolume[i];
vwapBuffer[i]= sumPrice/sumVol;
}
}
* When the indicator is plotted on a bottom it calculates the VWAP taking into account the Low:
{
double sumPrice=0,sumVol=0;
for(int i=startVWAP; i<iRatesTotal; i++)
{
sumPrice += Price(iLow ,i)*iVolume[i];
sumVol += iVolume[i];
vwapBuffer[i]= sumPrice/sumVol;
}
}
->There must be a function to calculate the standard deviation of the VWAP(σ).
->There must be a function to calculate the lower and upper band of the VWAP.
BottomBandBuffer = VWAP -K1*σ
Where K1 is a “double” input and σ is the standard deviation of the VWAP.
BufferBandSuperior= VWAP + K2*σ
Where K2 is a “double” input and σ is the standard deviation of the VWAP.
->There must be a function to plot lower and upper band of the VWAP.
If input PlotBands = True the bands must be ploted.
->There must be a function to validate the VWAP.
(Long exemple)
* When a candle closes below the VWAP it is no longer a valid VWAP and the robot can no longer use that VWAP.
* When a candle closes above the VWAP it is no longer a valid VWAP and the robot can no longer use that VWAP.
* In the red arrow the VWAP was valid. In the blue arrow after the closing of the candle above the VWAP it is no longer valid.
In this other example the first vwap is no longer valid on the yellow line. The second vwap is no longer valid on the green line and the third vwap is no longer valid on the brown line.
->EA Entry pattern:
-> The robot will enter the operation based on the VWAP which was plotted by the user.
The robot will only enter the trade if:
(short example)
Rules:
* There must be 1 valid VWAP
* Price must touch vwap and close below it
* The price must make a high higher than the highest high between the last N candlesticks (Input: default N=3) And close below. (See example in the graph in blue). The highest high among the last 3 candlesticks was the middle candlestick.
* Entry is made on the next candlestick - Limit order (0.5 pips before touching vwap)
In this example the entry was made on the red line (0.5 pips before touching vwap).
In this example: The maximum of the last 3 candles is the rightmost candle. The candle touched the VWAP and closed below it. The candlestick made a high higher than the high of the candlestick further to the right and closed below that high. The sell occurs (0.5 pips before touching the vwap) on the red bar.
*Note: The VWAP test must be on the next candlestick.
->Take Profit
(short example)
Take will be
BottomBandBuffer = VWAP -K1*σ. K1 defaults to 1
->Stop Loss
(short example)
The stop will be
BufferBandSuperior= VWAP + K2*σ. K2 default will be 0.5
By default the stop will be 0.5 standard deviation from the VWAP and the take will be 1 standard deviation from the VWAP. But the user can change this input if he wants.
Note: Stop and target will be fixed and will be in the position of the respective bands when the robot enters the trade. Stop and target will not be dynamic following the bands!
-> Early Stop Loss
(short example)
If the robot is in the middle of a trade and the price closes above the VWAP, it can close the trade (Leave an input(true,false) option to activate this functionality)
In this example the robot must close the operation on the yellow bar at the closing of the candle.
->There must be a time filter that the robot can open operations (Input)
-> Trading lot control:
*Fixed lot options
*Options to cross out % of the account. With default risk 1% per trade.
->Trade protection
(Long example)
*There must be an input (true, false) to allow trade protection (0.5 pips above the entry) if it has gone N% of target. The default of N = 70%
*** Must contain the executable and the source code! ***