Created
April 1, 2020 01:39
-
-
Save Pompeu/bfe46854152a4b86b3526e54a73fc5c1 to your computer and use it in GitHub Desktop.
simple boot to rsi_2 by https://www.youtube.com/watch?v=v8u1gdCzrFk&feature=youtu.be
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#property copyright "Itacir Ferreira Pompeu" | |
#property version "0.01" | |
//fix extencioa | |
#include <Trade/Trade.mqh> | |
input double lote = 1.0; | |
input int ema_lower = 5; | |
double ema_lower_buffer[]; | |
double ifr_buffer[]; | |
int ema_lower_handle; | |
int ifr_handle; | |
CTrade trade; | |
MqlRates rates[]; | |
//+------------------------------------------------------------------+ | |
//| | | |
//+------------------------------------------------------------------+ | |
int OnInit() | |
{ | |
//--- | |
ArraySetAsSeries(ema_lower_buffer, true); | |
ArraySetAsSeries(ifr_buffer, true); | |
ema_lower_handle = iMA(_Symbol,_Period, ema_lower,0, MODE_SMA, PRICE_CLOSE); | |
ifr_handle = iRSI(_Symbol,_Period, 2, PRICE_CLOSE); | |
//--- | |
return(INIT_SUCCEEDED); | |
} | |
//+------------------------------------------------------------------+ | |
//| Expert tick function | | |
//+------------------------------------------------------------------+ | |
bool comprado = false; | |
//+------------------------------------------------------------------+ | |
//| | | |
//+------------------------------------------------------------------+ | |
void OnTick() | |
{ | |
//--- | |
CopyBuffer(ema_lower_handle, 0, 0, 3, ema_lower_buffer); | |
CopyBuffer(ifr_handle, 0, 0, 3, ifr_buffer); | |
CopyRates(Symbol(), Period(), 0, 3, rates); | |
if(ifr_buffer[0] < 5 && !comprado) | |
{ | |
comprado = true; | |
trade.Buy(lote, Symbol(), 0, 0, 0); | |
} | |
bool rates_close_up_ema = rates[1].close > ema_lower_buffer[1]; | |
if(comprado && rates_close_up_ema) | |
{ | |
trade.Sell(lote, Symbol(), normalize_to_indice(rates[1].close), 0, 0); | |
comprado = false; | |
} | |
} | |
//+------------------------------------------------------------------+ | |
void close_all() | |
{ | |
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY || PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) | |
{ | |
trade.PositionClose(PositionGetInteger(POSITION_TICKET)); | |
trade.OrderDelete(OrderGetTicket((int)PositionGetInteger(POSITION_TICKET))); | |
} | |
} | |
//+------------------------------------------------------------------+ | |
bool is_new_bar() | |
{ | |
static datetime last_time = 0; | |
datetime lastbar_time = (datetime)SeriesInfoInteger(_Symbol, _Period, SERIES_LASTBAR_DATE); | |
if(last_time == 0) | |
{ | |
last_time = lastbar_time; | |
return (false); | |
} | |
if(last_time != lastbar_time) | |
{ | |
last_time = lastbar_time; | |
return (true); | |
} | |
return (false); | |
} | |
//+------------------------------------------------------------------+ | |
//| | | |
//+------------------------------------------------------------------+ | |
double normalize_to_indice(double prince) | |
{ | |
return NormalizeDouble(prince - MathMod(prince, 5), _Digits) * _Point; | |
} | |
//+------------------------------------------------------------------+ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment