Wszystkie pytania dozwolone początkujących programistów
Re: Wszystkie pytania dozwolone początkujących programistów
Dobra, już wiem co jest. Coś nie gra z plikiem wskaźnika, który mam u siebie. Gdy ściągnąłem tę wersję, którą wstawiłeś kilka postów wcześniej, wszystko śmiga jak należy.
Wielkie dzięki za pomoc i do następnego...problemu:)
Wielkie dzięki za pomoc i do następnego...problemu:)
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
Jeżeli miałeś np. starszą wersję MQL4 w tym .ex4, to starsze wersje często bywają niekompatybilne.
Trochę inna była składnia. I mając tylko .ex4 nie poprawisz kodu.
Wiesz, w necie zwykle łatwo znaleźć .mq4. Mnie to zjęło kilka sekund.
Trochę inna była składnia. I mając tylko .ex4 nie poprawisz kodu.
Wiesz, w necie zwykle łatwo znaleźć .mq4. Mnie to zjęło kilka sekund.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Wszystkie pytania dozwolone początkujących programistów
Masz rację, tylko nawet nie szukałem .mq4 bo nie był mi potrzebny.
Re: Wszystkie pytania dozwolone początkujących programistów
Witam ponownie, tak w ramach treningu podjąłem się pewnej rzeczy ale utknąłem. Mam wskaźnik typu oscylator, który rysuje dwie linie, które przecinają się co jakiś czas. Na ten wskaźnik wrzuciłem wskaźnik Williams' Percent Range, ponieważ potrzebuję z niego tylko poziomy "-20" i "-80".
Chciałbym uchwycić moment przecięcia niebieskiej z czerwoną ale tylko nad poziomem "-20" lub pod poziomem "-80". Rzecz w tym, że utknąłem na odczytaniu wartości "-20" i "-80" z WPR. Wiem jak odczytać wszelkie parametry wskaźnika ale z poziomami jest problem. Szukałem rozwiązania na forum MQL ale bez rezultatu.
Może ktoś próbował już takich rzeczy lub ma pomysł na rozwiązanie mojego problemu... Może też być tak, że w MQL4 jest to niemożliwe do zrobienia.
Będę wdzięczny za odzew
Chciałbym uchwycić moment przecięcia niebieskiej z czerwoną ale tylko nad poziomem "-20" lub pod poziomem "-80". Rzecz w tym, że utknąłem na odczytaniu wartości "-20" i "-80" z WPR. Wiem jak odczytać wszelkie parametry wskaźnika ale z poziomami jest problem. Szukałem rozwiązania na forum MQL ale bez rezultatu.
Może ktoś próbował już takich rzeczy lub ma pomysł na rozwiązanie mojego problemu... Może też być tak, że w MQL4 jest to niemożliwe do zrobienia.
Będę wdzięczny za odzew
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
Hmmm, to co napisałeś nie ma logicznego sensu...
Umiesz odczytać bufory danego wskaźnika, a poziomów nie???
Przecież wartośc danej linii wskaźnika odpowiada poziomowi w podoknie.
Natomiast, nie możesz wymagać, żeby inny wskaźnik nałożony na inny odczytywał poziomy tego pierwszego...
W tym WPR.mq4 jest tylko jeden bufor.
Odczytujesz wartość tego buforu, ona może być od 0 do 100, więc jaki problem?
A wskaźnik STI_OBOS nie ma/nie zna poziomów z WPR, więc potrzebujesz dla [ i ] odczytać wartość jednego i drugiego, i
wtedy porównać.
Umiesz odczytać bufory danego wskaźnika, a poziomów nie???
Przecież wartośc danej linii wskaźnika odpowiada poziomowi w podoknie.
Natomiast, nie możesz wymagać, żeby inny wskaźnik nałożony na inny odczytywał poziomy tego pierwszego...
W tym WPR.mq4 jest tylko jeden bufor.
Odczytujesz wartość tego buforu, ona może być od 0 do 100, więc jaki problem?
A wskaźnik STI_OBOS nie ma/nie zna poziomów z WPR, więc potrzebujesz dla [ i ] odczytać wartość jednego i drugiego, i
wtedy porównać.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
W praktyce to powinno wyglądać tak:
Kod: Zaznacz cały
if(STI_OBOS_Value1[i+2]>STI_OBOS_Value2[i+2]&&STI_OBOS_Value1[i+1]<STI_OBOS_Value2[i+1]&&WPR[i+1]>-20)
{
Execute_Sell();
}
if(STI_OBOS_Value1[i+2]<STI_OBOS_Value2[i+2]&&STI_OBOS_Value1[i+1]>STI_OBOS_Value2[i+1]&&WPR[i+1]<-80)
{
Execute_Buy();
}
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Wszystkie pytania dozwolone początkujących programistów
Witam, mam dosyć banalne pytanie jednak nie jestem programistą i problem mnie przerósł. Otóż mam znalazłem wskaźnik o dosyć prostej formule tzn. wartość rsi/wartość cci. I teraz jeśli zmienić cci na np. williams percent range, to w którym miejscu w kodzie muszę dokonać zmian?
Dodam, że próbowałem już zmienić wszystkie hasła cci na williams percent range i wywala mi błąd w 74 wierszu.
Dodam, że próbowałem już zmienić wszystkie hasła cci na williams percent range i wywala mi błąd w 74 wierszu.
Kod: Zaznacz cały
// More information about this indicator can be found at:
//http://fxcodebase.com/code/viewtopic.php?f=38&t=69516
//+------------------------------------------------------------------+
//| Copyright © 2020, Gehtsoft USA LLC |
//| http://fxcodebase.com |
//+------------------------------------------------------------------+
//| Developed by : Mario Jemic |
//| mario.jemic@gmail.com |
//| https://AppliedMachineLearning.systems |
//+------------------------------------------------------------------+
//| Support our efforts by donating |
//| Paypal : https://goo.gl/9Rj74e |
//| Patreon : https://goo.gl/GdXWeN |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2020, Gehtsoft USA LLC"
#property link "http://fxcodebase.com"
#property version "1.0"
#property strict
input int Period1 = 14; // CCI Period
input int Period2 = 14; // RSI Period
input bool Reverse = false; // Reverse
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
string IndicatorName;
string IndicatorObjPrefix;
string GenerateIndicatorName(const string target)
{
string name = target;
int try = 2;
while (WindowFind(name) != -1)
{
name = target + " #" + IntegerToString(try++);
}
return name;
}
double Oscillator[];
int init()
{
IndicatorName = GenerateIndicatorName("RSI CCI Ratio");
IndicatorObjPrefix = "__" + IndicatorName + "__";
IndicatorShortName(IndicatorName);
IndicatorBuffers(1);
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(0, Oscillator);
SetIndexLabel(0, "Oscillator");
return 0;
}
int deinit()
{
ObjectsDeleteAll(ChartID(), IndicatorObjPrefix);
return 0;
}
int start()
{
int counted_bars = IndicatorCounted();
int minBars = 1;
int limit = MathMin(Bars - 1 - minBars, Bars - counted_bars - 1);
for (int i = limit; i >= 0; i--)
{
double cciValue = iCCI(_Symbol, _Period, Period1, PRICE_CLOSE, i);
double rsiValue = iRSI(_Symbol, _Period, Period2, PRICE_CLOSE, i);
if (Reverse)
{
if (rsiValue != 0)
{
Oscillator[i] = cciValue / rsiValue;
}
}
else
{
if (cciValue)
{
Oscillator[i] = rsiValue / cciValue;
}
}
}
return 0;
}
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
To nie działa tak, że sobie coś podmienisz, jeżeli nie rozumiesz co czytasz i nie wiesz co napisać.
Jeżeli chcesz mieć dane z innego wskaźnika, to potrzebujesz je z niego pobrać.
Dla wskaźników domyślnie dostarczanych w MT4 są gotowe funkcje, takie jak iCCI() i iRSI(), które w tym wskaźniku pobierają dane z buforów tych wskaźników.
Dla innych wskaźników, tzw. custom, trzeba napisać funkcję iCustom() i przez nią pobrać dane z odpowiednich buforów, a potem z nimi zrobić co potrzeba.
Jeżeli chcesz mieć dane z innego wskaźnika, to potrzebujesz je z niego pobrać.
Dla wskaźników domyślnie dostarczanych w MT4 są gotowe funkcje, takie jak iCCI() i iRSI(), które w tym wskaźniku pobierają dane z buforów tych wskaźników.
Dla innych wskaźników, tzw. custom, trzeba napisać funkcję iCustom() i przez nią pobrać dane z odpowiednich buforów, a potem z nimi zrobić co potrzeba.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.
- ninjaproject
- Maniak
- Posty: 4944
- Rejestracja: 30 lip 2019, 13:15
Re: Wszystkie pytania dozwolone początkujących programistów
A poza tym, to ja tu jeszcze widzę błąd logiczny, w tym kodzie.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.
Programuję wskaźniki i EA do MetaTrader 4/5.
Re: Wszystkie pytania dozwolone początkujących programistów
Ahhh, czyli jednak będę musiał poprosić kogoś o pomoc
Mogę zapytać w w którym miejscu jest ten błąd? Wskaźnik na podstawie tego kodu działa bez zarzutu.
Mogę zapytać w w którym miejscu jest ten błąd? Wskaźnik na podstawie tego kodu działa bez zarzutu.