Witam wszystkich.
Mam pytanie jak w tytule (porównanie RSI z danego momentu z RSI w momencie zakupu) - czy mogę to zrobić? Ewentualnie jak?
Pozdrawiam
Porównanie RSI z danego momentu z RSI w momencie zakupu
-
- Stały bywalec
- Posty: 43
- Rejestracja: 22 gru 2016, 12:45
Re: Porównanie RSI z danego momentu z RSI w momencie zakupu
Prosty przykład:
Kod: Zaznacz cały
datetime time_1=D'2017.03.21 12:00';
datetime time_2=D'2017.05.22 11:00';
int RSI_period = 14;
void OnStart()
{
int shift_1 = iBarShift(Symbol(),PERIOD_CURRENT, time_1);
int shift_2 = iBarShift(Symbol(),PERIOD_CURRENT, time_2);
double RSI_time_1 = iRSI(Symbol(), PERIOD_CURRENT, RSI_period, PRICE_CLOSE, shift_1);
double RSI_time_2 = iRSI(Symbol(), PERIOD_CURRENT, RSI_period, PRICE_CLOSE, shift_2);
printf("Wartosc RSI z 21 marca: %f \n Wartosc RSI z 22 maja: %f", RSI_time_1, RSI_time_2);
}
Współautor interaktywnego kursu MQL4 dla serwisu fxwatch
Re: Porównanie RSI z danego momentu z RSI w momencie zakupu
Niestety jestem bardzo początkującym programistą, więc moje zabiegi w dręczeniu kodu nie dały rezultatu...
Ja chcę, żeby porównywać zawsze RSI dla pozycji otwartej (kupna lub sprzedaży) i aby w momencie jak RSI dojdzie do zadanej wartości wygenerować zamknięcie pozycji. Mam nadzieję że to wyjaśniłem zrozumiale. Pozdrawiam.
Ja chcę, żeby porównywać zawsze RSI dla pozycji otwartej (kupna lub sprzedaży) i aby w momencie jak RSI dojdzie do zadanej wartości wygenerować zamknięcie pozycji. Mam nadzieję że to wyjaśniłem zrozumiale. Pozdrawiam.
-
- Stały bywalec
- Posty: 43
- Rejestracja: 22 gru 2016, 12:45
Re: Porównanie RSI z danego momentu z RSI w momencie zakupu
Hmm, to może taki robot, który zamyka wszystkie otwarte selle lub buye, gdy RSI przekroczy dany poziom?
Jak się poda ujemne RSI to zamyka po spadku RSI poniżej danego poziomu (wartości bezwzględnej). Przy dodatnim RSI zamyka po wzroście powyżej danej wartości. Zobacz na demo czy o coś takiego chodzi.
Kod: Zaznacz cały
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
extern double RSI_kupno;
extern double RSI_sprzedaz;
extern int RSI_okres = 14;
double currentRSI;
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
for( int i=OrdersTotal(); i>=0; i-- ){
if( !OrderSelect(i, SELECT_BY_POS) ) continue;
currentRSI = iRSI(OrderSymbol(),PERIOD_CURRENT, RSI_okres, PRICE_CLOSE, 0);
if( OrderType() == OP_BUY ){
if (RSI_kupno > 0 && currentRSI > RSI_kupno) {
OrderClose(OrderTicket(), OrderLots(), Bid, 50);
}else if (RSI_kupno < 0 && currentRSI < MathAbs(RSI_kupno) ) {
OrderClose(OrderTicket(), OrderLots(), Bid, 50);
}
}
if( OrderType() == OP_SELL ){
if (RSI_sprzedaz > 0 && currentRSI > RSI_sprzedaz) {
OrderClose(OrderTicket(), OrderLots(), Ask, 50);
}else if (RSI_sprzedaz < 0 && currentRSI < MathAbs(RSI_sprzedaz) ) {
OrderClose(OrderTicket(), OrderLots(), Ask, 50);
}
}
}
}
//+------------------------------------------------------------------+
Współautor interaktywnego kursu MQL4 dla serwisu fxwatch
Re: Porównanie RSI z danego momentu z RSI w momencie zakupu
Dzięki
Zadziałało
Zadziałało