Tekst po obu stronach świecy jednocześnie

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
freakout
Maniak
Maniak
Posty: 2120
Rejestracja: 23 mar 2011, 13:35

Tekst po obu stronach świecy jednocześnie

Nieprzeczytany post autor: freakout »

Witam :)

Mam mały problem - otóż w poniższym fragmencie kodu chciałbym ustawić tekst po obu stronach świecy (góra i dół - pod i nad strzałką - tak jak tutaj: https://c.mql4.com/i/docs/en/objtext.png ), ale mimo wszelkich prób napis "Neutral" wyświetla się tylko pod świecą. Ma ktoś pomysł jak to zrobić? :roll:

Kod: Zaznacz cały

if (C==O)
         if (Display_Doji== true) {  
            ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], Low[shift1] - Range*2.5);
            ObjectSetText(PatternText[shift], "Neutral", 8, "Calibri", White);
            ObjectSetDouble(ChartID(), PatternText[shift], OBJPROP_ANGLE, 90);
            ObjectSetInteger(ChartID(), PatternText[shift], OBJPROP_ANCHOR, ANCHOR_BOTTOM);
            upArrow[shift1] = Low[shift1] - Range*0.5;
            downArrow[shift1] = High[shift1] + Range*0.5;
            }
         if (shift == 0 && Show_Alert == true) {
            pattern="Neutral Signal";
            setalert = 1;
         }
      }  

Z góry dzięki za pomoc :564:

Awatar użytkownika
personov
Pasjonat
Pasjonat
Posty: 1525
Rejestracja: 09 sie 2009, 21:27

Re: Tekst po obu stronach świecy jednocześnie

Nieprzeczytany post autor: personov »

Tworzysz tylko jeden obiekt, więc może on być tylko w jednym miejscu.
Stwórz drugi obiekt przez funkcję ObjectCreate(), nadaj mu inną nazwę i usytuuj na górze.
Solą życia jest kasa.

Awatar użytkownika
freakout
Maniak
Maniak
Posty: 2120
Rejestracja: 23 mar 2011, 13:35

Re: Tekst po obu stronach świecy jednocześnie

Nieprzeczytany post autor: freakout »

robię tak i nie działa... wyskakuje błąd: 'PatternText1' - undeclared identifier Patterns.mq4 :roll:

próbowałem to zrobić tak:

Kod: Zaznacz cały

if (C==O)
         if (Display_Doji== true) {  
            ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], Low[shift1] - Range*2.5);
            ObjectSetText(PatternText[shift], "Neutral", 8, "Calibri", White);
            ObjectSetDouble(ChartID(), PatternText[shift], OBJPROP_ANGLE, 90);
            ObjectSetInteger(ChartID(), PatternText[shift], OBJPROP_ANCHOR, ANCHOR_BOTTOM);
            ObjectCreate(PatternText1[shift], OBJ_TEXT, 0, Time[shift1], High[shift1] - Range*2.5);
            ObjectSetText(PatternText1[shift], "Neutral", 8, "Calibri", White);
            ObjectSetDouble(ChartID(), PatternText1[shift], OBJPROP_ANGLE, 90);
            ObjectSetInteger(ChartID(), PatternText1[shift], OBJPROP_ANCHOR, ANCHOR_TOP);
            upArrow[shift1] = Low[shift1] - Range*0.5;
            downArrow[shift1] = High[shift1] + Range*0.5;
            }
         if (shift == 0 && Show_Alert == true) {
            pattern="Neutral Signal";
            setalert = 1;
         }
      }  
i tak:

Kod: Zaznacz cały

if (C==O)
         if (Display_Doji== true) {  
            ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], Low[shift1] - Range*2.5);
            ObjectSetText(PatternText[shift], "Neutral", 8, "Calibri", White);
            ObjectSetDouble(ChartID(), PatternText[shift], OBJPROP_ANGLE, 90);
            ObjectSetInteger(ChartID(), PatternText[shift], OBJPROP_ANCHOR, ANCHOR_BOTTOM);
{
         return;
        }
            ObjectCreate(PatternText1[shift], OBJ_TEXT, 0, Time[shift1], High[shift1] - Range*2.5);
            ObjectSetText(PatternText1[shift], "Neutral", 8, "Calibri", White);
            ObjectSetDouble(ChartID(), PatternText1[shift], OBJPROP_ANGLE, 90);
            ObjectSetInteger(ChartID(), PatternText1[shift], OBJPROP_ANCHOR, ANCHOR_TOP);
            downArrow[shift1] = High[shift1] + Range*0.5;
            }
         if (shift == 0 && Show_Alert == true) {
            pattern="Neutral Signal";
            setalert = 1;
         }
      }  
i jeszcze na kilka innych sposobów... może gdzieś w innym miejscu kodu jest błąd? zamieszczam wskaźnik w razie czego, bo próbowałem już na różne sposoby i nic... :roll:

-- Dodano: ndz 17-04-2016, 5:41 --

ok, udało się :) powinno być tak:

Kod: Zaznacz cały

ObjectCreate(PatternText[shift]+"_upper", OBJ_TEXT, 0, Time[shift1], High[shift1] + Range*1.1);
            ObjectSetText(PatternText[shift]+"_upper", "Neutral", 8, "Calibri", White);
            ObjectSetDouble(ChartID(), PatternText[shift]+"_upper", OBJPROP_ANGLE, 90);
            ObjectSetInteger(ChartID(), PatternText[shift]+"_upper", OBJPROP_ANCHOR, ANCHOR_LEFT);
            upArrow[shift1] = Low[shift1] - Range*0.5;
            downArrow[shift1] = High[shift1] + Range*0.5;
ufff ;)

ODPOWIEDZ