Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
mikolaj2
Gaduła
Gaduła
Posty: 231
Rejestracja: 04 maja 2011, 14:37

Nieprzeczytany post autor: mikolaj2 »

Dziękuję...

Propeth
Bywalec
Bywalec
Posty: 13
Rejestracja: 19 lut 2012, 20:55

Nieprzeczytany post autor: Propeth »

Witam,

proste pytanko:

if(buys>0) return(buys);
else return(-sells);

Jeżeli liczba otwartych pozycji będzie większa od 0, zwróci te otwarte pozycje, a w innym wypadku zwróci "-sells" ? Co oznacza, to -sells?

Pozdrawiam

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

Nieprzeczytany post autor: LowcaG »

Propeth pisze:Witam,

proste pytanko:

if(buys>0) return(buys);
else return(-sells);

Jeżeli liczba otwartych pozycji będzie większa od 0, zwróci te otwarte pozycje, a w innym wypadku zwróci "-sells" ? Co oznacza, to -sells?

Pozdrawiam
oznacza sells pomnożone razy -1

Propeth
Bywalec
Bywalec
Posty: 13
Rejestracja: 19 lut 2012, 20:55

Nieprzeczytany post autor: Propeth »

LowcaG pisze: oznacza sells pomnożone razy -1
A możesz mi wyjaśnić dlaczego jest mnożone razy -1? Ten fragment jest z Moving Average wbudowanego w MetaTrader.

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

Nieprzeczytany post autor: LowcaG »

Propeth pisze: możesz mi wyjaśnić dlaczego jest mnożone razy -1? Ten fragment jest z Moving Average wbudowanego w MetaTrader.
Tak na szybko patrząc..to nie ma żadnego praktycznego zastosowania. Ot tak często progrmiści lubią oznaczać np."kierunek" buy na plus a sell na minus...tak dla rozróżnienia..żeby wiedzieć, że jeżeli liczba ujemna to liczba selli jeżeli dodatania to buyów, ale tutaj jak napisałem, nie ma to kompletnie żadnego znaczenia...

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

Nieprzeczytany post autor: Esco »

W zasadzie to jest po to żeby jedna instrukcja warunkową sprawdzić jednocześnie ilość i kierunek pozycji.

remyg
Bywalec
Bywalec
Posty: 15
Rejestracja: 26 maja 2012, 19:04

Nieprzeczytany post autor: remyg »

Podpowie ktoś jak zaprogramować EA tak by otwierał pozycje tylko w przedziale między oraz włącznie z wybranymi dniami tygodnia?

zaczynam od ustawienia externów

Kod: Zaznacz cały

extern string start_day = "monday";
extern string end_day = "thursday";
int SD;
int ED;
Do funkcji init wrzucam konwersję na tych dni tygodnia na integery

Kod: Zaznacz cały

void init(){
   if (start_day=="sunday") SD = 0;
   if (start_day=="monday") SD = 1;
   if (start_day=="tuesday") SD = 2;
   if (start_day=="wednesday") SD = 3;
   if (start_day=="thursday") SD = 4;
   if (start_day=="friday") SD = 5;
   if (start_day=="saturday") SD = 6;
   if (end_day=="sunday") ED = 0;
   if (end_day=="monday") ED = 1;
   if (end_day=="tuesday") ED = 2;
   if (end_day=="wednesday") ED = 3;
   if (end_day=="thursday") ED = 4;
   if (end_day=="friday") ED = 5;
   if (end_day=="saturday") ED = 6;
}
No i dalej wiem, że trzeba użyć if (DayOfWeek( ) ... itd.
Ale problem w tym, że nie znam przedziału między SD i ED. Może można jakoś zbudować Array z przedziału między dwoma integerami? Nie mogę znaleźć takiej funkcji w dokumentacji :/

Z góry dzięki.

Dodano po 7 minutach:

Kurde, chyba już mam :)

Kod: Zaznacz cały

if (DayOfWeek()>=SD && DayOfWeek()<=ED)
Może innemu noobkowi się przyda :)

Propeth
Bywalec
Bywalec
Posty: 13
Rejestracja: 19 lut 2012, 20:55

Nieprzeczytany post autor: Propeth »

Witam,

if(Open[1]>ma && Close[1]<ma)

jeżeli jest [1]: Open[1] i Close[1], oznacza to, że ma pobierać wartości przedostatniej zamkniętej świeczki?

remyg
Bywalec
Bywalec
Posty: 15
Rejestracja: 26 maja 2012, 19:04

Nieprzeczytany post autor: remyg »

[1] to ostatnia zamknięta świeczka. [0] to aktualna świeczka
Series array elements are indexed in the reverse order, i.e., from the last one to the first one. The current bar which is the last in the array is indexed as 0. The oldest bar, the first in the chart, is indexed as Bars-1.

Propeth
Bywalec
Bywalec
Posty: 13
Rejestracja: 19 lut 2012, 20:55

Nieprzeczytany post autor: Propeth »

Dzięki za odpowiedź, a możesz mi jeszcze napisać na jakiej zasadzie działa ten kod:

if(Volume[0]>1) return;

ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);

Jeżeli aktualna świeczka > 1, zwróci nową obliczoną średnią kroczącą tak?

Tylko co to oznacza, że jest większa od 1?

ps. ten kod to wbudowane MA z mt4

ODPOWIEDZ