Wszystkie pytania dozwolone początkujących programistów
Re: Wszystkie pytania dozwolone początkujących programistów
Nie da się, musisz dorobić dodatkowy obiekt OBJ_TEXT lub OBJ_LABEL i tam zmieniać kolor jeśli jest taka potrzeba.
Nie chodzi o to czy masz rację czy nie, tylko o to, co robisz kiedy masz rację lub jak się zachowujesz jeżeli racji nie masz.
Re: Wszystkie pytania dozwolone początkujących programistów
Ok, bo w sumie by mogło zostać że cały prostokąt zmienia kolor, ale wskaźnik tworzy dwa obiekty:
No i mogłoby tak zostać jakby zmieniało kolor tylko dla ale jak robie to nie działa, dla pojedyńczego obiektu np PWT10 działa, ale jak zrobić z taką zmienną nazwą?
Kod: Zaznacz cały
CreateObjects("PWT1"+i, Color_1);
CreateObjects("PWT2"+i, Color_2);
Kod: Zaznacz cały
"PWT1"+i
Kod: Zaznacz cały
ObjectSet("PWT1"+i, OBJPROP_COLOR, kolor);
Re: Wszystkie pytania dozwolone początkujących programistów
Zapewne te prostokąty są tworzone w pętli dlatego jego nazwa to PWT1+i
i prawdopodobnie chcesz zmieniać ostatni lub pierwszy
trzeba dopisać if'a
i prawdopodobnie chcesz zmieniać ostatni lub pierwszy
trzeba dopisać if'a
Kod: Zaznacz cały
if(no=="PWT10")
{
zmieniam kolor
}
Nie chodzi o to czy masz rację czy nie, tylko o to, co robisz kiedy masz rację lub jak się zachowujesz jeżeli racji nie masz.
Re: Wszystkie pytania dozwolone początkujących programistów
Tak, są tworzone w pętli, ale, chcę aby kolor zmieniały wszystkie pod nazwą:
PWT1+i czyli PWT10, PWT11, PWT12, PWT149 itd...
No i nie chcę aby kolor zmieniały te pod nazwą:
PWT2+i czyli PWT20, PWT21, PWT22, PWT249 itd...
Pętla wygląda tak:
PWT1+i czyli PWT10, PWT11, PWT12, PWT149 itd...
No i nie chcę aby kolor zmieniały te pod nazwą:
PWT2+i czyli PWT20, PWT21, PWT22, PWT249 itd...
Pętla wygląda tak:
Kod: Zaznacz cały
void start() {
datetime dt=CurTime();
for (int i=0; i<NumberOfDays; i++) {
DrawObjects(dt, "PWT1"+i, Begin_1, End_1);
DrawObjects(dt, "PWT2"+i, Begin_2, End_2);
dt=decDateTradeDay(dt);
while (TimeDayOfWeek(dt)>5) dt=decDateTradeDay(dt);
}
}
Re: Wszystkie pytania dozwolone początkujących programistów
nazwa obiektu to stirng sprawdzasz czy się zgadza jego stała cześć i gotowe
http://bossa.pl/index.jsp?layout=2&page ... at_id=1285
-- Dodano: wtorek 2015-08-04, 13:32 --
a w funkcji if(ustaw_kolor) zmienie kolor
Kod: Zaznacz cały
if(StringSubstr(no, 0, 4) == "PWT1")
{
.....
}
-- Dodano: wtorek 2015-08-04, 13:32 --
żeby było wydajniej zamiast StringSubstr do funkcji DrawObjects dodałbym parametr np. bool ustaw_kolorxspojlerx pisze:Tak, są tworzone w pętli, ale, chcę aby kolor zmieniały wszystkie pod nazwą:
PWT1+i czyli PWT10, PWT11, PWT12, PWT149 itd...
No i nie chcę aby kolor zmieniały te pod nazwą:
PWT2+i czyli PWT20, PWT21, PWT22, PWT249 itd...
Pętla wygląda tak:
Kod: Zaznacz cały
void start() { datetime dt=CurTime(); for (int i=0; i<NumberOfDays; i++) { DrawObjects(dt, "PWT1"+i, Begin_1, End_1); DrawObjects(dt, "PWT2"+i, Begin_2, End_2); dt=decDateTradeDay(dt); while (TimeDayOfWeek(dt)>5) dt=decDateTradeDay(dt); } }
a w funkcji if(ustaw_kolor) zmienie kolor
Kod: Zaznacz cały
void start() {
datetime dt=CurTime();
for (int i=0; i<NumberOfDays; i++) {
DrawObjects(dt, "PWT1"+i, Begin_1, End_1, True);
DrawObjects(dt, "PWT2"+i, Begin_2, End_2, False);
dt=decDateTradeDay(dt);
while (TimeDayOfWeek(dt)>5) dt=decDateTradeDay(dt);
}
}
void DrawObjects(datetime dt, string no, string tb, string te, bool ustaw_kolor) {
datetime t1, t2;
double p1, p2;
int b1, b2;
t1=StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb);
t2=StrToTime(TimeToStr(dt, TIME_DATE)+" "+te);
b1=iBarShift(NULL, 0, t1);
b2=iBarShift(NULL, 0, t2);
p1=High[Highest(NULL, 0, MODE_HIGH, b1-b2, b2)];
p2=Low [Lowest (NULL, 0, MODE_LOW , b1-b2, b2)];
if (!HighRange) {p1=0; p2=2*p2;}
ObjectSet(no, OBJPROP_TIME1 , t1);
ObjectSet(no, OBJPROP_PRICE1, p1);
ObjectSet(no, OBJPROP_TIME2 , t2);
ObjectSet(no, OBJPROP_PRICE2, p2);
if(ustaw_kolor)
{
double tmp = ((p1-p2)/Point)/10;
color kolor = White;
if(tmp < 10 || tmp > 20 ) kolor = Red;
ObjectSetInteger(0, no, OBJPROP_COLOR, kolor);
ObjectSetString(0, no, OBJPROP_TEXT, tmp);
}
}
Nie chodzi o to czy masz rację czy nie, tylko o to, co robisz kiedy masz rację lub jak się zachowujesz jeżeli racji nie masz.
Re: Wszystkie pytania dozwolone początkujących programistów
Ok, teraz wszystko fajnie działa, wielkie dzięki
Re: Wszystkie pytania dozwolone początkujących programistów
Witam,
chciałbym się dowiedzieć z jakich funkcji/sposobów mogę skorzystać jeśli chcę 'zamrozić' w EA konkretny poziom ceny do czasu zamknięcia pozycji. Chodzi mi konkretnie o to że EA rozpoznając formację inside bar pamięta High i Low 'świecy matki' nawet jesli wystąpiła ona kilka świec temu i jej ekstrema nie zostały ruszone przez cenę.
Sam wpadłem tylko na roboczy pomysł ręcznego wklepania cen na sztywno jako parametr zewnętrzny no ale chciałbym iść krok dalej.
będę wdzięczny za podpowiedzi.
chciałbym się dowiedzieć z jakich funkcji/sposobów mogę skorzystać jeśli chcę 'zamrozić' w EA konkretny poziom ceny do czasu zamknięcia pozycji. Chodzi mi konkretnie o to że EA rozpoznając formację inside bar pamięta High i Low 'świecy matki' nawet jesli wystąpiła ona kilka świec temu i jej ekstrema nie zostały ruszone przez cenę.
Sam wpadłem tylko na roboczy pomysł ręcznego wklepania cen na sztywno jako parametr zewnętrzny no ale chciałbym iść krok dalej.
będę wdzięczny za podpowiedzi.
Re: Wszystkie pytania dozwolone początkujących programistów
Cześć, chciałem zrobić aby wskaźnik dodawał mi tekst do linii o określonej nazwie:
no i w takim przypadku działa,
Ale jak chcę zrobić dla dwóch nazw:
to dodaje tekst dla wszystkich linii na wykresie, bez względu na nazwę
Kod: Zaznacz cały
if(ObjectName(i)=="EASYORDER_SL")
Ale jak chcę zrobić dla dwóch nazw:
Kod: Zaznacz cały
if(ObjectName(i)=="EASYORDER_SL"||"EASYORDER_TP")
Re: Wszystkie pytania dozwolone początkujących programistów
Nie wiem, czy to rozwiąże problem, ale wydaje mi się, że cała formuła nawiasu powinna wyglądać tak :xspojlerx pisze:Cześć, chciałem zrobić aby wskaźnik dodawał mi tekst do linii o określonej nazwie:
no i w takim przypadku działa,Kod: Zaznacz cały
if(ObjectName(i)=="EASYORDER_SL")
Ale jak chcę zrobić dla dwóch nazw:
to dodaje tekst dla wszystkich linii na wykresie, bez względu na nazwęKod: Zaznacz cały
if(ObjectName(i)=="EASYORDER_SL"||"EASYORDER_TP")
Kod: Zaznacz cały
if(ObjectName(i)=="EASYORDER_SL"||ObjectName(i)=="EASYORDER_TP")
Solą życia jest kasa.
Re: Wszystkie pytania dozwolone początkujących programistów
Działa, dziękuję