przebicie linii

O jezykach programowania w platformach i nie tylko.
mb777
Bywalec
Bywalec
Posty: 18
Rejestracja: 26 sty 2010, 18:21

przebicie linii

Nieprzeczytany post autor: mb777 »

Witam!
Postanowiłem napisać sobie prostego robota , który miałby otwierać pozycje po przecięciu mojej linii (narysowanej i nazwanej "l1")
Wydawało mi się ze taki kod powinien zadziałać bardzo prosto ale niestety działać nie chce :/

Kod: Zaznacz cały

int start()
  {
   RefreshRates();
   if (Ask== ObjectGetValueByShift(linia1,0))
      Alert (linia1, " przebita " ) ;
   return(0);
  }
Po uruchomieniu nic się dzieje i nie za bardzo wiem dlaczego to nie działa.
Prosiłbym o pomoc.

Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

Nieprzeczytany post autor: siersciuch »

zapomiałeś chyba o ordersend? coś musi Ci otworzyć to zlecenie

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Nieprzeczytany post autor: LowcaG »

A dlaczego zakladasz, ze kiedykolwiek Ask będzie równe "twojej prostej" ? Masz male szanse na to, to nie jest wykres ciagly, tam sa skoki

Awatar użytkownika
El Coyote
Stały bywalec
Stały bywalec
Posty: 37
Rejestracja: 18 mar 2011, 05:06

Nieprzeczytany post autor: El Coyote »

coś w ten deseń:

Kod: Zaznacz cały

int start(){
   static double lastAsk   =Ask;
   if(lastAsk<=ObjectGetValueByShift(linia1,0)&&Ask>ObjectGetValueByShift(linia1,0))
      Alert(linia1, " przebita od dolu" );
      
   if(lastAsk>=ObjectGetValueByShift(linia1,0)&&Ask<ObjectGetValueByShift(linia1,0))
      Alert(linia1, " przebita od gory");
   
   lastAsk  =Ask;
   return(0);
}

mb777
Bywalec
Bywalec
Posty: 18
Rejestracja: 26 sty 2010, 18:21

Nieprzeczytany post autor: mb777 »

Ten kod także nie działa, rzeczywiście dopiero dodanie pewnego zakresu do ceny
umożliwia poprawne działanie

Kod: Zaznacz cały

ObjectGetValueByShift(Nazwa,0)+(0.0001);
ObjectGetValueByShift(Nazwa,0)-(0.0001);
Przyznam ze jestem troszke zaskoczony tym że 1 pips nie równy 1 pipsowi :)
Dzięki wszystkim

Awatar użytkownika
RafalT
Stały bywalec
Stały bywalec
Posty: 77
Rejestracja: 25 wrz 2010, 00:24

Nieprzeczytany post autor: RafalT »

1 pips nie jest równy 3 pipsom :wink:.
Zamiast 0.0001 możesz napisać Point, będzie wtedy "bardziej uniwesalnie"

ODPOWIEDZ