Jak uzyskać własne wartości wskaźników?
Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki od 1 do 10 z 13

Wątek: Jak uzyskać własne wartości wskaźników?

  1. #1
    Próbuję użyć wskaźnika Crossover Signal EMA w EA i mam problem z uzyskaniem z niego wartości. Używam iCustom () i bez względu na wybrany tryb (0 lub 1) wskaźnik zwraca tylko 2147483647. Jakieś myśli o tym, co robię źle?

    Oto przykład tego, co próbuję zrobić:

    podwójne EMA = iCustom (NULL, 0, EMA Crossover Signal, 5,13, ​​false, 0,0);

    Drukuj (EMA);

    Oto kod indyka:

    // ----------------------------------------------- -------------------
    //| EMA-Crossover_Signal.mq4 |
    //| Prawa autorskie © 2005, Jason Robinson (jnrtrading) |
    //|
    http://www.jnrtading.co.uk|
    // ----------------------------------------------- -------------------

    /*
    ------------------------------------------------- -----------------
    | Pozwala wprowadzić dwa okresy ema, a następnie wyświetli w |
    | W którym punkcie przeszli. Jest bardziej przydatny na krótszym |
    | okresy, które zostają zasłonięte przez paskiświeczniki i kiedy |
    | poziom zoomu jest wyłączony. Pozwala także na usunięcie emas |
    | z wykresu. (emas początkowo ustawione na 5 i 6) |
    ------------------------------------------------- -----------------
    *
    #property copyright Copyright © 2005, Jason Robinson (jnrtrading)
    #property link http://www.jnrtrading.co.uk

    #property indior_chart_window
    #property indior_buffers 2
    #property indior_color1 SeaGreen
    #property indior_color2 Czerwony

    podwójny CrossUp [];
    double CrossDown [];
    extern int FasterEMA = 5;
    extern int SlowerEMA = 13;
    extern bool SoundON = false;
    podwójny alertTag;
    podwójne sterowanie = 2147483647;

    // ----------------------------------------------- -------------------
    //| Funkcja inicjalizacji wskaźnika niestandardowego |
    // ----------------------------------------------- -------------------
    int init ()
    {
    //---- wskaźniki
    SetIndexStyle (0, DRAW_ARROW, EMPTY, 3);
    SetIndexArrow (0, 233);
    SetIndexBuffer (0, CrossUp);
    SetIndexStyle (1, DRAW_ARROW, EMPTY, 3);
    SetIndexArrow (1, 234);
    SetIndexBuffer (1, CrossDown);
    //----
    return (0);
    }
    // ----------------------------------------------- -------------------
    //| Indywidualna funkcja deinicjalizacji wskaźnika |
    // ----------------------------------------------- -------------------
    int deinit ()
    {
    //----

    //----
    return (0);
    }
    // ----------------------------------------------- -------------------
    //| Funkcja iteracji wskaźnika niestandardowego |
    // ----------------------------------------------- -------------------
    int start () {
    limit int, i, licznik;
    Podwójnie szybszyEMnowo, wolniej, szybsza, poprzednia, wolniejsza, poprzednia, szybsza, późniejsza, wolniejsza;
    podwójny zakres, AvgRange;
    int counted_bars = IndiorCounted ();
    //---- sprawdź możliwe błędy
    if (counted_barslt; 0) return (-1);
    //---- ostatni zliczony pasek zostanie zliczony
    if (counted_barsgt; 0) counted_bars--;

    limit = Bars-counted_bars;

    dla (i = 0; i =; limit; i ) {

    counter = i;
    Zakres = 0;
    AvgRange = 0;
    dla (counter = i; counterlt; = i 9; counter )
    {
    AvgRange = AvgRange MathAbs (High [counter] -Low [counter]);
    }
    Zakres = AvgRange10;

    fasterEMAnow = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
    fasterEMAprevious = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i 1);
    fasterEMAafter = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);

    slowerEMAnow = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i);
    slowerEMAprevious = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i 1);
    slowerEMAafter = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);

    if ((szybszy_znaczy gt, slower_mow) (szybszy_przypomnialny lt; slowerEMAprevious) (fasterEMAafter gt; slowerEMAafter)) {
    CrossUp [i] = Low [i] - Range * 0,5;
    }
    else if ((fasterEMAnow lt; slowerEMAnow) (fasterEMAprevious gt; slowerEMAprevious) (fasterEMAafter lt; slowerEMAafter)) {
    CrossDown [i] = High [i] Range * 0.5;
    }
    if (SoundON == true i == 1 CrossUp [i] gt; CrossDown [i] alertTag! = Time [0]) {
    Alert (EMA Cross Trend idzie w dół, Symbol (),, Okres ());
    alertTag = Czas [0];
    }
    if (SoundON == true i == 1 CrossUp [i] lt; CrossDown [i] alertTag! = Time [0]) {
    Alert (EMA Cross Trend idący w górę, Symbol (),, Okres ());
    alertTag = Czas [0];
    }

    }
    return (0);
    }

  2. #2
    sprawdź nazwę pliku icustom. Upewnij się, że masz wszystkie kreski i podkreślenia na miejscu. Upewnij się także, że wielkie litery znajdują się we właściwym miejscu. Musi być dokładnie taki, jak plik jest zapisany.

  3. #3

    Cytat Zamieszczone przez ;
    sprawdź nazwę pliku icustom. Upewnij się, że masz wszystkie kreski i podkreślenia na miejscu. Upewnij się także, że wielkie litery znajdują się we właściwym miejscu. Musi być dokładnie taki, jak plik jest zapisany.
    Bez powodzenia ... nazwa pliku to EMA Crossover Signal i to jest dokładnie to, jak je wprowadziłem.

  4. #4
    Zmień nazwę pliku wskaźnika na coś prostego, takiego jak EMACS lub coś podobnego. Mam pewne problemy z nazwami plików i spacjami.

  5. #5

    Cytat Zamieszczone przez ;
    Zmień nazwę pliku wskaźnika na coś prostego, takiego jak EMACS lub coś podobnego. Mam pewne problemy z nazwami plików i spacjami.
    Nie, to też nie działa. Zastanawiam się, czy włączyć kod indyka bezpośrednio do EA lub po prostu napisać własny kod krzyżowy MA ... ale miałem nadzieję, że nie odkryję ponownie koła i użyję sygnałów EMA, aby zobaczyć strzałki, gdy zobaczą krzyż.

  6. #6
    Czy sprawdziłeś, jakie wartości zwraca wskaźnik w oknie danych? Zwykle nie ma żadnych wartości.

  7. #7
    Twój iCustom powinien wyglądać mniej więcej tak. iCustom (NULL, 0, EMA Crossover Signal, FasterEMA, SlowerEMA, 0, 0); Zmodyfikuję wskaźnik, aby ustawić każdą wartość inną niż strzałka na 0, tak jak. Ułatwiam sobie ustawienie logiki handlowej.
    Cytat Zamieszczone przez ;
    // ----------------------------------------------- ------------------- /| EMA-Crossover_Signal.mq4 |/| Prawa autorskie © 2005, Jason Robinson (jnrtrading) |/|
    http://www.jnrtading.co.uk|/ ----------------------------------------------- ------------------- * --------------------------- --------------------------------------- | Pozwala wprowadzić dwa okresy ema, a następnie wyświetli w | | W którym punkcie przeszli. Jest bardziej użyteczny w krótszym | | okresy, które zostają zasłonięte przez paskiświeczniki i kiedy | | poziom zoomu jest wyłączony. Pozwala także na usunięcie emas | | z wykresu. (emas początkowo ustawione na 5 i 6) | ------------------------------------------------- ----------------- *#property copyright Copyright © 2005, Jason Robinson (jnrtrading) #property link http://www.jnrtrading.co.uk #property indior_chart_window # property indior_buffers 2 #property indior_color1 SeaGreen #property indior_color2 Red double CrossUp []; double CrossDown []; extern int FasterEMA = 5; extern int SlowerEMA = 13; extern bool SoundON = false; podwójny alertTag; podwójne sterowanie = 2147483647;/ ----------------------------------------------- ------------------- /| Funkcja inicjalizacji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int init () {//---- wskaźniki SetIndexStyle (0, DRAW_ARROW, EMPTY, 3); SetIndexArrow (0, 233); SetIndexBuffer (0, CrossUp); SetIndexStyle (1, DRAW_ARROW, EMPTY, 3); SetIndexArrow (1, 234); SetIndexBuffer (1, CrossDown);/---- return (0); }/ ---------------------------------------------- -------------------- /| Indywidualna funkcja deinicjalizacji wskaźnika |/ ----------------------------------------------- ------------------- int deinit () {//----/---- return (0); }/ ---------------------------------------------- -------------------- /| Funkcja iteracji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int start () {limit int, i, licznik; Podwójnie szybszyEMnowo, wolniej, szybsza, poprzednia, wolniejsza, poprzednia, szybsza, późniejsza, wolniejsza; podwójny zakres, AvgRange; int counted_bars = IndiorCounted ();/---- sprawdź możliwe błędy, jeśli (counted_barslt; 0) return (-1);/---- ostatni zliczony pasek zostanie zliczony, jeśli (counted_barsgt; 0) counted_bars--; limit = Bars-counted_bars; for (i = 0; i lt; = limit; i ) {counter = i; Zakres = 0; AvgRange = 0; dla (counter = i; counterlt; = i 9; counter ) {AvgRange = AvgRange MathAbs (High [counter] -Low [counter]); } Range = AvgRange10; fasterEMAnow = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i); fasterEMAprevious = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i 1); fasterEMAafter = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); slowerEMAnow = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i); slowerEMAprevious = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i 1); slowerEMAafter = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); if ((szybszy_CZĘŚĆ gt; slowerEMAnow) (szybszyEMAprevious lt; slowerEMAprevious) (szybszyEMAafter gt; slowerEMAafter)) {CrossUp [i] = niski [i] - zakres * 0.5; } else {CrossUp [i] = 0; } else if ((fasterEMAnow lt; slowerEMAnow)(fasterEMAprevious gt; slowerEMAprevious) (fasterEMAafter lt; slowerEMAafter)) {CrossDown [i] = High [i] Range * 0.5; } else {CrossDown [i] = 0; } if (SoundON == true i == 1 CrossUp [i] gt; CrossDown [i] alertTag! = Time [0]) {Alert (EMA Cross Trend idzie w dół, Symbol (),, Okres ()); alertTag = Czas [0]; } if (SoundON == true i == 1 CrossUp [i] lt; CrossDown [i] alertTag! = Time [0]) {Alert (EMA Cross Trend rośnie, Symbol (),, Okres ()); alertTag = Czas [0]; }} return (0); }
    Cytat Zamieszczone przez ;
    // ----------------------------------------------- ------------------- /| EMA-Crossover_Signal.mq4 |/| Prawa autorskie © 2005, Jason Robinson (jnrtrading) |/|
    http://www.jnrtading.co.uk|/ ----------------------------------------------- ------------------- * --------------------------- --------------------------------------- | Pozwala wprowadzić dwa okresy ema, a następnie wyświetli w | | W którym punkcie przeszli. Jest bardziej użyteczny w krótszym | | okresy, które zostają zasłonięte przez paskiświeczniki i kiedy | | poziom zoomu jest wyłączony. Pozwala także na usunięcie emas | | z wykresu. (emas początkowo ustawione na 5 i 6) | ------------------------------------------------- ----------------- *#property copyright Copyright © 2005, Jason Robinson (jnrtrading) #property link http://www.jnrtrading.co.uk #property indior_chart_window # property indior_buffers 2 #property indior_color1 SeaGreen #property indior_color2 Red double CrossUp []; double CrossDown []; extern int FasterEMA = 5; extern int SlowerEMA = 13; extern bool SoundON = false; podwójny alertTag; podwójne sterowanie = 2147483647;/ ----------------------------------------------- ------------------- /| Funkcja inicjalizacji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int init () {//---- wskaźniki SetIndexStyle (0, DRAW_ARROW, EMPTY, 3); SetIndexArrow (0, 233); SetIndexBuffer (0, CrossUp); SetIndexStyle (1, DRAW_ARROW, EMPTY, 3); SetIndexArrow (1, 234); SetIndexBuffer (1, CrossDown);/---- return (0); }/ ---------------------------------------------- -------------------- /| Indywidualna funkcja deinicjalizacji wskaźnika |/ ----------------------------------------------- ------------------- int deinit () {//----/---- return (0); }/ ---------------------------------------------- -------------------- /| Funkcja iteracji wskaźnika niestandardowego |/ ----------------------------------------------- ------------------- int start () {limit int, i, licznik; Podwójnie szybszyEMnowo, wolniej, szybsza, poprzednia, wolniejsza, poprzednia, szybsza, późniejsza, wolniejsza; podwójny zakres, AvgRange; int counted_bars = IndiorCounted ();/---- sprawdź możliwe błędy, jeśli (counted_barslt; 0) return (-1);/---- ostatni zliczony pasek zostanie zliczony, jeśli (counted_barsgt; 0) counted_bars--; limit = Bars-counted_bars; for (i = 0; i lt; = limit; i ) {counter = i; Zakres = 0; AvgRange = 0; dla (counter = i; counterlt; = i 9; counter ) {AvgRange = AvgRange MathAbs (High [counter] -Low [counter]); } Range = AvgRange10; fasterEMAnow = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i); fasterEMAprevious = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i 1); fasterEMAafter = iMA (NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); slowerEMAnow = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i); slowerEMAprevious = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i 1); slowerEMAafter = iMA (NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); if ((szybszy_CZĘŚĆ gt; slowerEMAnow) (szybszyEMAprevious lt; slowerEMAprevious) (szybszyEMAafter gt; slowerEMAafter)) {CrossUp [i] = niski [i] - zakres * 0.5; } else {CrossUp [i] = 0; } else if ((fasterEMAnow lt; slowerEMAnow)(fasterEMAprevious gt; slowerEMAprevious) (fasterEMAafter lt; slowerEMAafter)) {CrossDown [i] = High [i] Range * 0.5; } else {CrossDown [i] = 0; } if (SoundON == true i == 1 CrossUp [i] gt; CrossDown [i] alertTag! = Time [0]) {Alert (EMA Cross Trend idzie w dół, Symbol (),, Okres ()); alertTag = Czas [0]; } if (SoundON == true i == 1 CrossUp [i] lt; CrossDown [i] alertTag! = Time [0]) {Alert (EMA Cross Trend rośnie, Symbol (),, Okres ()); alertTag = Czas [0]; }} return (0); }

  8. #8
    Jeśli zbudujesz swój EA do handlu wyłącznie w oparciu o ten wskaźnik, pamiętaj, że ten wskaźnik bardzo szybko się odradza. Strzała pojawi się, zniknie i pojawi się ponownie. Przeczytaj uważnie kod wskaźnika i zmień te linie, aby była to strzałka nieprzemijająca.

  9. #9

    Cytat Zamieszczone przez ;
    Czy sprawdziłeś, jakie wartości zwraca wskaźnik w oknie danych? Zwykle nie ma żadnych wartości.
    Jestem ciekawy, jeśli pole dla wartości w wskaźniku jest puste, co mam umieścić w logice handlu? EMPTY_VALUE nie działa.

  10. #10
    tak ... jeśli (EMA == EMPTY_VALUE) {........ ........ równoważne zero lub zero lub tej liczbie 2147483647

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.