Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
none
Stały bywalec
Stały bywalec
Posty: 23
Rejestracja: 09 sty 2012, 12:16

Nieprzeczytany post autor: none »

o kurde a ja jak głupi na wszystkie sposoby nawiasy przestawiam :)

czyli na funkca ma byc poza start a odwołanie do niej tylko pomiedzy znaczkami start

diodak23
Bywalec
Bywalec
Posty: 5
Rejestracja: 07 gru 2011, 12:25

Nieprzeczytany post autor: diodak23 »

Hej.

Otwieram programowo zlecenie i ustawiam w SendOrder TP i ST.
I po pewnym czasie zlecenie osiagnie TP albo SL i zostanie zamkniete. ALe wtedy na wykresie nie narysuje sie trojkat zamykajacy i przerywana linia miedzy otwarciem i zamknieciem.

Jak zrobic aby przy samoczynnym zamkniecie narysowal sie trojkat zamykajacy i linia przerywana?

Awatar użytkownika
SceptycznyProgramista
Stały bywalec
Stały bywalec
Posty: 37
Rejestracja: 02 kwie 2011, 23:51

Nieprzeczytany post autor: SceptycznyProgramista »

mam pytanie jak napisać kod, który pozwala otworzyć pozycję po np maksymalnie godzinie po wystąpieniu 1 warunku (dajmy na to od przecięcia się dwóch średnich?

Awatar użytkownika
Esco
Przyjaciel Forum
Przyjaciel Forum
Posty: 2603
Rejestracja: 11 kwie 2010, 20:56

Nieprzeczytany post autor: Esco »

trzeba zdefiniować zmienne globalna np:

Kod: Zaznacz cały

bool zdarzenie_wystapilo=false;
datetime czas = 0;
następnie w kodzie po wystąpieniu zdarzenia utworzyć "zapalnik" dla zdarzenia:

Kod: Zaznacz cały

 if(ma100>ma50)
 {
         zdarzenie_wystapilo = true;
         czas = TimeCurrent();
}
a w innym miejscu w kodzie monitorować stan zmiennej zdarzenie_wystapilo

Kod: Zaznacz cały

 if(zdarzenie_wystapilo && czas > czas +1h)
{
         ....// tu wpisac kod do wykonania
        zdarzenie_wystapilo = false; //  resetujemy stan i czekamy na kolejne
        czas=0;
}

dlugix
Uczestnik
Uczestnik
Posty: 2
Rejestracja: 23 lis 2008, 21:21

Nieprzeczytany post autor: dlugix »

Witam, mam następujący problem. Piszę oscylator w separate window i chcę wyświetlić sygnały buy i sell w oknie wykresu w postaci arrow. Jednak nie wyświetla mi historycznych strzałek (te co się dopiero tworzą wyświetla) dopiero jak mam uruchomiony mt4 i skompiluje na żywca to historyczne się wyświetlają. Tak samo jest przy zmianie TF. Ktoś wie co jest grane?

Kod: Zaznacz cały

int deinit()
{
   ObjectsDeleteAll(0, OBJ_ARROW);
}

void drawSignals(int i)
{
   if(checkForBuy(i))
   {
      ObjectCreate("ArrowBuy"+Time[i], OBJ_ARROW, 0, Time[i], Low[i] - 5*Point);
      ObjectSet("ArrowBuy"+Time[i],OBJPROP_ARROWCODE, 241);
   }
   
   if(checkForSell(i))
   {
      ObjectCreate("ArrowSell"+Time[i], OBJ_ARROW, 0, Time[i], High[i] + 10*Point);
      ObjectSet("ArrowSell"+Time[i],OBJPROP_ARROWCODE, 242);
   }
}

int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars - counted_bars;
   for(int i=0; i<limit; i++)
   {
   
      Map[i]  = costam;
      drawSignals(i);
   }
   return(0);
  }

mabe
Gaduła
Gaduła
Posty: 328
Rejestracja: 07 lip 2011, 23:27

Nieprzeczytany post autor: mabe »

Jak mogę wyliczyć maksymalny lot jakim mogę otworzyć pozycję?
np. lewar 1:500, depozyt 100 USD, waluta EURUSD

Znalazłem w sieci

Kod: Zaznacz cały

NormalizeDouble(AccountFreeMargin() * maximumRisk / 1000.0, 2);
Czy znacie jakiś inny sposób wyliczenia maksymalnego Lota?
Jeśli będziesz ciężko pracował nad swoim zajęciem, zarobisz na życie.
Jeśli będziesz ciężko pracował nad sobą, zarobisz fortunę. (Jim Rohn)

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

Nieprzeczytany post autor: siersciuch »

Chciałbym zeby mi zamykało zlecenie po np 50 minutach. to 50minut mnoze razy 60 wychodzi 3000 sekund, ale jak je dodać do Orderopentime() ?

Kod: Zaznacz cały

if(OrderSelect(short2, SELECT_BY_TICKET)==true)
   {
      if(OrderCloseTime()==0 &&  TimeCurrent()< OrderOpenTime()+3000)
      { 
         OrderClose(short2,lot,Bid,2);
      }
   }
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

dlugix
Uczestnik
Uczestnik
Posty: 2
Rejestracja: 23 lis 2008, 21:21

Nieprzeczytany post autor: dlugix »

siersciuch pisze:Chciałbym zeby mi zamykało zlecenie po np 50 minutach. to 50minut mnoze razy 60 wychodzi 3000 sekund, ale jak je dodać do Orderopentime() ?

Kod: Zaznacz cały

if(OrderSelect(short2, SELECT_BY_TICKET)==true)
   {
      if(OrderCloseTime()==0 &&  TimeCurrent()< OrderOpenTime()+3000)
      { 
         OrderClose(short2,lot,Bid,2);
      }
   }
Moze tak:

Kod: Zaznacz cały

if(TimeCurrent()-OrderOpenTime() >= 3000)

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

Nieprzeczytany post autor: siersciuch »

Miałem znak miejszości w złą strone :P:P juz działa wszystko


Szukam funkcji zwaracającej np cene Bid o określonej godzinie.
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

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

Nieprzeczytany post autor: personov »

Cena Bid o określonej godzinie może mieć wiele wartości. Wszystko zależy od Volume[].
Chyba, że chodzi Ci o cenę otwarcia, zamknięcia itp.
Solą życia jest kasa.

ODPOWIEDZ