billishbullish:
Hi!
My goal is to build a bot that will buy the market price ONLY when a 5 minute candle opens up above EMA line. After the trade it would wait until it has opened a new candel below EMA line. Only after that it may take another long position.
It is working so far, but now what it does is that it ALWAYS opens a new long position when price is above the EMA line. Can't figure this out. Can you guys help me implement with this?
Pseudocode solution would be something like this:
if (Price has already traded above EMA without moving below the EMA inbetween) {
--> No trade!
} else {
Look for a next trading opportunity
}
Here is my code so far:
Try something that.
int SwitchBuySell=0; void OnTick() { //String variable to the signal string signal = ""; //9EMA: double movingAverage = iMA(_Symbol, _Period, 9, 0, MODE_EMA, PRICE_CLOSE, 0); //Buy signal if((Open[0]>movingAverage)&&((SwitchBuySell==0)||(SwitchBuySell==-1))) { signal = "buy"; } //Sell signal if((Open[0]<movingAverage)&&((SwitchBuySell==0)||(SwitchBuySell==1))) { signal = "sell"; } //Buy 0.1 lots if(signal == "buy" && OrdersTotal() == 0) { SwitchBuySell=1; OrderSend (_Symbol, OP_BUY, 0.10, Ask, 3, Ask-10*_Point, Ask+10*_Point, NULL, 0,0, Green); } //Sell 0.1 lots if(signal == "sell" && OrdersTotal() == 0) { SwitchBuySell=-1; OrderSend (_Symbol, OP_SELL, 0.10, Bid, 3, Ask+10*_Point, Ask-10*_Point, NULL, 0,0, Red); } }
Nikolaos Pantzos:
Solved it. Thank you very much for help!
Try something that.
![MQL5 - Language of trade strategies built-in the MetaTrader 5 client terminal](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Hi!
My goal is to build a bot that will buy the market price ONLY when a 5 minute candle opens up above EMA line. After the trade it would wait until it has opened a new candel below EMA line. Only after that it may take another long position.
It is working so far, but now what it does is that it ALWAYS opens a new long position when price is above the EMA line. Can't figure this out. Can you guys help me implement with this?
Pseudocode solution would be something like this:
if (Price has already traded above EMA without moving below the EMA inbetween) {
--> No trade!
} else {
Look for a next trading opportunity
}
Here is my code so far: