Jak narysować pudełko w MT4?
Strona 1 z 4 123 ... OstatniOstatni
Pokaż wyniki od 1 do 10 z 34

Wątek: Jak narysować pudełko w MT4?

  1. #1
    Oczywisty nowicjusz MT4 tutaj..

    Chciałem wiedzieć, czy istnieje najlepsza praktyka rysowania pudełka w MT4 w celu automatyzacji transakcji typu breakout.

    Każda pomoc bardzo mile widziana.

    Hal

  2. #2
    Ps.: EA nie są idealne, są jakieś błędy, jak Zamknij. Jeśli użyjesz Close[x] lub wskaźnika, który używa ceny zamknięcia na bieżącym słupku, będziesz mieć nieprawidłowe dane... Dlaczego? w EA bieżący słupek nie ma wartości zamknięcia tylko wartości otwartej, więc jeśli użyjesz RSI na przykład, RSI [0] nie da dobrej wartości, dopóki RSI [1], ponieważ RSI używa PRICE_CLOSE do obliczenia jest rzeczy ... Więc EA są dobre, ale żeby pomóc nam zdefiniować egie, trzeba je przetestować na żywo...

  3. #3
    Należy dokonać pewnych wyjaśnień:
    Cytat Zamieszczone przez ;
    Zrobiłem zgodnie z twoją instrukcją i zredagowałem skompilowany CI bez błędów, a kiedy zastosowałem go do wykresu, widzę, że naśladuje on identycznie jak RSI (21), który mam uruchomiony na tym samym wykresie. Oto, co do tej pory udało mi się zrozumieć: W przypadku CI wszystko to: #property Indicator_separate_window #property Indicator_buffers 1 #property Indicator_color1 Czerwony jest stosowany do tego: double ExtMapBuffer1[];
    Źle (żeby się nie pomylić): #property indicator_separate_window lt;- Czy CI będzie #property Indicator_buffers 1 lt;- Po prostu powiedz, ile jest bufora Ponieważ kiedyś będziesz miał więcej bufora, ale tylko 1 lub 2 do be draw... #property Indicator_color1 Red lt;- Powiedz API, aby używało czerwonego dla bufora pierwszej linii
    Cytat Zamieszczone przez ;
    i to: extern int MyPeriod = 21; jest tylko zmienną zewnętrzną. (Rozumiem, czym jest zmienna. Zewnętrzny tworzy ją, więc możesz ją ustawić w małym interfejsie graficznym po uruchomieniu.) To tutaj: int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); zwrot(0); } To mówi, co zostanie narysowane graficznie, i znajduje się w sekcji „uruchom raz podczas uruchamiania”. W takim przypadku narysuj linię, która zaczyna się od 0 i używa następującego bufora do narysowania samego siebie [ buffer = ( począwszy od 0 jest wartością ExtMapBuffer1) ]
    Źle: SetIndexBuffer(0,ExtMapBuffer1);lt;- 0 służy tylko do rysowania pierwszego bufora, 1 byłby drugim losowaniem (w stochastyce masz 0,1 z powodu linii 2) SetIndexStyle(0, DRAW_LINE);lt;- DRAW_LINE zostanie zastosowany do bufora zdefiniowanego przez 0, więc ExtMapBuffer1
    Cytat Zamieszczone przez ;
    for(int x=limit ; ​​x gt;=0 ; x--)* Dla ( zadeklaruj liczbę całkowitą „x” równą „limit” i „x” jest większe lub równe zeru, zmniejsz „x” o jeden. ) Czy to sprawia, że ​​gówno zaczyna się od 0 i cofa o jeden za każdym razem. (?) */
    Idzie od lewej do prawej: więc ostatni pasek (najstarszy) do najnowszego (0:Current)

  4. #4
    Pracowałem nad tym i to ma sens! Napisałem swój pierwszy EA i myślę, że w dużym stopniu trafiłem w szczęście początkujących! Dziękuję bardzo za dobre instrukcje! Nie mógłbym tego zrobić bez ciebie. Wiem, że to początek długiej podróży. Nie oczekuję cudów od razu. Ale teraz testuję moją osobliwość natury i jak dotąd działa fantastycznie! (na koncie demonstracyjnym FXDD) Nazywam to dziwactwem natury, ponieważ ktoś z tak małym doświadczeniem w MQL4 nie powinien być w stanie napisać czegoś, co faktycznie działa tak dobrze w testowaniu w przód. 180 pipsów w ciągu ostatnich 24 godzin. testów FWD na demo (szczęście dla początkujących, to tylko jeden dzień.) http://www.venexys.com/HP002A2_FWD_DET_TEST_DAY001.gif
    http://www.venexys.com/HP002A2_FWD_TEST_RESULTS.htmhttp://www.venexys.com/HP002A2_FWD_TEST_RESULTS.htm

  5. #5
    Zrobiłem zgodnie z twoją instrukcją i zredagowałem skompilowany CI bez błędów, a kiedy zastosowałem go do wykresu, widzę, że naśladuje on identycznie jak RSI (21), który mam uruchomiony na tym samym wykresie. Oto, co do tej pory udało mi się zrozumieć: W przypadku CI wszystko to: #property Indicator_separate_window #property Indicator_buffers 1 #property Indicator_color1 Czerwony jest stosowany do tego: double ExtMapBuffer1[]; i to: extern int MyPeriod = 21; jest tylko zmienną zewnętrzną. (Rozumiem, czym jest zmienna. Zewnętrzny tworzy ją, więc możesz ją ustawić w małym interfejsie graficznym po uruchomieniu.) To tutaj: int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); zwrot(0); } To mówi, co zostanie narysowane graficznie, i znajduje się w sekcji „uruchom raz podczas uruchamiania”. W tym przypadku narysuj linię, która zaczyna się od 0 i używa następującego bufora do narysowania siebie [ buffer = ( zaczynając od 0 jest wartością ExtMapBuffer1) ] Następnie przechodzimy aż do części „start” skryptu i tutaj mamy.... int start() { int limit = Bars-IndicatorCounted();*Zadeklaruj stałą całkowitą równą wynikowi (Liczba słupków na zliczanym wykresie MINUS ilość słupków niezmienionych po ostatnim uruchomieniu wskaźnika) */for(int x=limit ; ​​x gt;=0 ; x --)* Dla ( zadeklaruj liczbę całkowitą „x”, która jest równa „limit”, a „x” jest większe lub równe zeru, zmniejsz „x” o jeden.) Czy to sprawia, że ​​gówno zaczyna się od 0 i idzie cofać się o jeden za każdym razem. (?) */{ ExtMapBuffer1[x]=iRSI(NULL,0,MyPeriod,CENA_CLOSE,x);* ExtMapBuffer1[x] równa się iRSI(......,x) */} Powoli przeglądam każdą linię kodu, aby dobrze ją zrozumieć i zmieniam wskaźnik, kolor, bufory itp. tak, jak radzisz. Powoli zaczyna do mnie docierać. Jestem pewien, że w krótkim czasie będę miał więcej pytań. To jest tak szczegółowe wyjaśnienie, o jakie każdy mógłby poprosić. Jestem wdzięczny, że poświęciłeś czas na wyjaśnienie tych przyziemnych szczegółów nowicjuszowi. Wielka karma dla ciebie! Jeszcze raz dziękuję! Hal

  6. #6
    Teraz poniżej podwójnego ExtMapBuffer1[]; Dodaj extern int MyPeriod = 21; extern służy do interakcji ze wskaźnikiem, kiedy instalujesz CI masz wyskakujące okienko, a następnie w zakładce input widzisz swoją zmienną extern... Teraz zastąp ExtMapBuffer1[x]=1; gdzie: ExtMapBuffer1[x]= iRSI(NULL,0,MyPeriod,PRICE_CLOSE,x) ; usuń : #wskaźnik_właściwości_minimum 0 #wskaźnik_właściwości_maksymalnie 2 I skompiluj... Jeśli nic nie widzisz. W porządku. usuń wskaźnik i odłóż go z powrotem... Skala nie zmienia się podczas kompilacji. ponieważ wartość RSI nie mieści się między 0 a 2... Proszę bardzo... Teraz masz swoje podstawowe... Spróbuj zmodyfikować wartość, dodaj bufor, zmień kolor, użyj innego wskaźnika (zamiast RSI, użyj iCCI). Wszystko, co musisz wiedzieć, to zacząć… Potem zobaczysz… jeśli masz inne pytanie, śmiało…: -) Wesołych Świąt

  7. #7
    1 Załącznik(i) Hej! zadziałało! mam swoją płaską czerwoną linię. W tym ostatnim poście jest sporo treści, które muszę przetrawić. Przejrzę to kilka razy, aby dobrze zrozumieć wszystko, co się dzieje. Dzięki za poświęcenie czasu temu człowiekowi. Rynki są zamknięte i zbliżają się wakacje. Mam nadzieję, że Ty i Twoi przyjaciele macie wspaniałe wakacje i Szczęśliwego Nowego Roku! Hal
    https://www.forex-instant.com/attach...1210488381.mq4

  8. #8
    Ok. więc wznowić Init lt;- program wykona tę funkcję tylko raz (gdy wskaźnik jest załadowany) deInit lt;- program wykona tę funkcję tylko raz (gdy wskaźnik jest rozładowany) Start lt;- program wykona tę funkcję za każdym razem odbiera dane z serwera. Czym jest niestandardowy wskaźnik? Żeby było krótko. Głównym powodem jest zbudowanie niestandardowego wskaźnika (na razie CI) jest przedstawienie pomysłu w sposób graficzny (i tak, możesz zrobić więcej, dźwięk, eksport, odczyt/zapis plików, alert itp.). Ale zanim... CI użyj Array(Or buffer or table) . Czym oni są? Powinieneś wiedzieć, co to jest zmienna (jeśli nie, przeczytaj o tym). Wyobraź sobie, że chcesz zadeklarować 100 zmiennych (zmienna1, zmienna2 itd.). Zajmie to dużo czasu i wysiłku ... Więc Array to po prostu połączenie wielu zmiennych pod jedną nazwą (ponownie, to więcej niż to, ale na razie wystarczy). Wyobraź sobie 100 pudełek obok siebie. pierwszy to 0, 1, potem 2 itd. (Tablica zaczyna się od 0 do (rozmiar tablicy) -1) Jeśli chcesz uzyskać/zapisać wartość z pola # 5, użyj Box [4] ( Box [BoxSize-1] ) Zwykle określasz rozmiar bufora, kiedy go deklarujesz. Ponieważ program nie wie, jaki rozmiar chcesz! ___ W skrócie: program musi przydzielić w pamięci miejsce potrzebne na bufor (np.: int buffer[2]={1,2}; utworzy w pamięci 2 miejsca typu int). Kiedy deklarujesz zmienną (int test
    , program automatycznie przydzieli 1 miejsce typu „int” na odebranie informacji. (Możesz także rozszerzyć lub wycofać bufor w swoim kodzie: Ale na razie zapomnij o tym). ___ CI pokaż grafikę. Następnie musisz użyć bufora, aby to zrobić. CI użyje Bufora, którego mu każesz użyć. Dla wskaźnika można użyć maksymalnie 8 buforów (ale możesz użyć wielu tabel, zobaczysz później). Każde pudełko (w celu wyjaśnienia przykładu) odpowiada 1 świecy na grafice. Bufor [0] jest wyrównany ze świecą nr 0 i tak dalej... Zaczynając od prawej do lewej (od najnowszych do najstarszych) Linie są rysowane od jednego pola do drugiego: jeśli masz 10 w polu [0] i 5 w polu [1] linia będzie przebiegać od prawej do lewej, od 10 do 5 (górna linia). W pierwszym demo po prostu umieścimy 1 jako wartość we wskaźniku (płaska linia). Zaczynamy: Najpierw umieszczamy „#property”, właściwość CI #property Indicator_separate_window #property Indicator_minimum 0 #property Indicator_maximum 2 #property Indicator_buffers 1 #property Indicator_color1 Czerwone 'indicator_minimum' i 'indicator_maximum' zdefiniują skalę (Wartości w prawo CI). Jeśli usuniesz „indicator_minimum” i „indicator_maximum”, będziesz mieć wartość High i Low od wartości w buforze CI, aby ją przeskalować. (z tylko 1 jako wartością, jak jej demo, jeśli nie umieścisz min/max, nie zobaczysz płaskiej linii) „indicator_buffers” służy do poinformowania programu, ile bufora użyjemy do wyjścia grafiki (ile linii chcemy: maksymalnie 8). „indicator_color1” jest łatwy, polega na określeniu koloru linii. Poniżej wszystkich „#property” umieszczasz podwójne ExtMapBuffer1[]; 'ExtMapBuffer1' to domyślna nazwa nadana przez kreatora, ale za każdym razem ją zmieniam; Powiedzmy, że Bufor []; W tym przypadku nie musisz mówić ile miejsca potrzebujemy (Buffer[x]
    , ponieważ zostanie to zrobione na funkcji 'Init'; W funkcji init umieszczasz: SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); „SetIndexStyle” służy do definiowania typu grafiki (linia, histogram itp.) 0 reprezentuje pierwszy inicjowany bufor, zajmie „indicator_color1”, a nr 1 użyje „indicator_color2” itp., aby powiązać kolor... Kolejność umieszczenia bufora nie jest tak ważna, ale spowoduje to narysowanie ich jeden po drugim, więc 0 będzie poniżej 1, więc 2 będzie na wierzchu 1, itd. Teraz wyobraź sobie MACD, jeśli linia MACD znajduje się za histogramem! To tylko kwestia widoczności. (Ale musi to być od 0 do x) „SetIndexBuffer” kojarzy „ExtMapBuffer1” na 0 i używa tego do identyfikacji bufora i użycia go do malowania linii na CI. Więc to jest to. masz swoją podstawową deklarację... Teraz użyjmy jej... Wstaw funkcję 'start': int limit = Bars-IndicatorCounted(); for(int x=limit; x gt;=0; x--){ ExtMapBuffer1[x]=1; } Gotowe... Aby uzyskać informacje na temat innych funkcji. Kliknij go dwukrotnie, a następnie „F1” Spróbuj… i powiedz mi, czy zadziała… będziesz mieć płaską linię…

  9. #9
    Musiałem przeczytać to kilka razy, ale myślę, że w tym momencie rozumiem. Kontynuuj do woli.

  10. #10
    Przy okazji powiadom mnie, gdy przeczytasz i zrozumiesz. Więc mogę kontynuować… poczekam, zanim pójdę dalej i dalej i dalej….

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Używamy cookies
Używamy cookies, aby jak najlepiej dostosować witrynę do Twoich potrzeb. Kontynuowanie przeglądania tej strony, oznacza zgodę na używanie plików cookies. Aby uzyskać więcej informacji zapoznaj się z naszą Polityką Prywatności.