przeciecie sie EURUSD i MA
i to też będzie nie do końca dobrze działało. Potrzebna jest jeszcze dodatkowa zmienna mówiąca w jakim położeniu jest średnia do ceny. Bez tego jeśli cena będzie wyższa niż Ma, w następnym ticku będzie z nią równa a w kolejnym znowu wyższa program da sygnał kupna mimo braku przecięcia.
"Szaleństwem jest robić wciąż to samo i oczekiwać rożnych rezultatów".
Albert Einstein
Albert Einstein
ja bym zrobił nie dla aktualnej i wcześniejszej tylko jeszcze cofnął o jedną świeczkę bo cena przetnie MA dopiero gdy się zamknie.
double MA1 = iMA(Symbol(),Period(),20,0,0,0,1);//wartość MA ostatniej zamkniętej świeczki
double MA2 = iMA(Symbol(),Period(),20,0,0,0,2);//wartość MA przedostatniej zamkniętej świeczki
bool a;//zmienna mówiąca czy cena jest nad MA
if(Close[2]<=MA2&&Close[1]>MA1 && a==0)........kup
if(Close[2]>=MA2&&Close[1]<MA1 && a==1)........sprzedaj
if (Close[1]>MA1) a=1;
if (Close[1]<MA1) a=0;
double MA1 = iMA(Symbol(),Period(),20,0,0,0,1);//wartość MA ostatniej zamkniętej świeczki
double MA2 = iMA(Symbol(),Period(),20,0,0,0,2);//wartość MA przedostatniej zamkniętej świeczki
bool a;//zmienna mówiąca czy cena jest nad MA
if(Close[2]<=MA2&&Close[1]>MA1 && a==0)........kup
if(Close[2]>=MA2&&Close[1]<MA1 && a==1)........sprzedaj
if (Close[1]>MA1) a=1;
if (Close[1]<MA1) a=0;
To juz są szegóły , o ktorych bedzie decydował autor EA.
Równie dobrze może się dla niego liczyć TYLKO sam fakt przcięcia. Jeśli cena przekroczy tą MA to już jest warunek spełniony. I nieważne, czy cena za chwilę wróci.
Jeśli jednak będzie chciał, aby liczyło się, czy świeca zamknęła się po przekroczeniu MA to tak jak piszesz. Lub zmienić price z 0 na 1 ( open ).
Równie dobrze może się dla niego liczyć TYLKO sam fakt przcięcia. Jeśli cena przekroczy tą MA to już jest warunek spełniony. I nieważne, czy cena za chwilę wróci.
Jeśli jednak będzie chciał, aby liczyło się, czy świeca zamknęła się po przekroczeniu MA to tak jak piszesz. Lub zmienić price z 0 na 1 ( open ).
Solą życia jest kasa.