You are unlikely to get much help in the forum with code created by an EA builder.
Thanks for the reply!
Fond two scripts on the forum. can you put those 2 together?
#include <Trade\Trade.mqh> #include <Trade\PositionInfo.mqh> int pos=0; int myRSIDefinition; CTrade trade; // To send orders and close positions CPositionInfo positionInfo; // to get info about current positions int OnInit() { // Define the handler once at EA Init, not every tick myRSIDefinition=iRSI(Symbol(),Period(),14,PRICE_CLOSE); // If is not posible to get indicator handler print some error information and return with error code if(myRSIDefinition==INVALID_HANDLE) { Print("There was an error creating RSI handler!"); return(INIT_FAILED); } return INIT_SUCCEEDED; } void OnTick() { string signal=""; double Ask=NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_ASK),Digits()); double Bid=NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_BID),Digits()); double myRSIArray[]; ArraySetAsSeries(myRSIArray,true); CopyBuffer(myRSIDefinition,0,0,3,myRSIArray); double myRSIValue=NormalizeDouble(myRSIArray[0],2); if(myRSIValue>70) signal="sell"; if(myRSIValue<30) signal="buy"; if(signal=="buy") { //First close all Sell positions for(pos=0; pos<PositionsTotal(); pos++) { //Select the position to load info if(positionInfo.SelectByIndex(pos)) { // Get the position type, if sell then close it if(positionInfo.PositionType()==POSITION_TYPE_SELL) { trade.PositionClose(positionInfo.Ticket()); } } } if (signal =="buy" && PositionsTotal()<1) trade.Buy(0.01,Symbol()); Comment ("The current signal is: ",signal); } if(signal=="sell") { //First close all Buy positions for(pos=0; pos<PositionsTotal(); pos++) { //Select the position to load info if(positionInfo.SelectByIndex(pos)) { // Get the position type, if buy then close it if(positionInfo.PositionType()==POSITION_TYPE_BUY) { trade.PositionClose(positionInfo.Ticket()); } } } if (signal =="sell" && PositionsTotal()<1) trade.Sell(0.01,Symbol()); Comment ("The current signal is: ",signal); } }
bool isNewBar=IsNewBar(); // new bar check signal=""; if(isNewBar) { static double myRSIArray[2]; int shift=1; int amount=2; if(CopyBuffer(myRSIDefinition,MAIN_LINE,shift,amount,myRSIArray)!=amount) { Print("CopyBuffer failed, error: ",_LastError); return; } double rsi1=myRSIArray[1]; double rsi2=myRSIArray[0]; if(rsi2<=70 && rsi1>70) signal="sell"; if(rsi2>=30 && rsi1<30) signal="buy"; }
Learn to code or hire a freelancer. Why anyone should do it for you for free?
Jan pieter #: can you put those 2 together?
Yes.
How To Ask Questions The Smart Way. (2004)
Only ask questions with yes/no answers if you want “yes” or “no” as the answer.
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
Hello traders, I have a question regarding scripting in Metaeditor. I have an rsi bot that buys under 30 rsi only it does this once. Does anyone here know how to place a buy order every new candle under 30rsi? I'm not a scripter myself, so I can't figure it out.
i put a file with it, i think it most be somewhere here?
Hopefully somebody can help me ;D