Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
potrzebujący ;)
Bywalec
Bywalec
Posty: 17
Rejestracja: 29 kwie 2012, 23:02

Nieprzeczytany post autor: potrzebujący ;) »

ok, działa... sl i tp były nico za blisko i musiałem skorzystać z marketinfo().
Dzięki za pomoc :D :pray:

mam jeszcze pytanie... czy mogę zadać ea konkretny zysk dzienny do wyrobienia? np.: 10 pipsów zysku. Jeżeli uda się za pierwszą transakcją to żeby już w tym dniu nie otwierał innych transakcji. A jeśli nie to niech otwiera tak długo aż uzyskam założony zysk...???

czy do tego mam użyć np AccountProfit() ??? jeśli tak to jak?
5% z czegoś jest lepsze niż 100% z niczego :P

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

potrzebujący ;) pisze:mam jeszcze pytanie... czy mogę zadać ea konkretny zysk dzienny do wyrobienia? np.: 10 pipsów zysku. Jeżeli uda się za pierwszą transakcją to żeby już w tym dniu nie otwierał innych transakcji. A jeśli nie to niech otwiera tak długo aż uzyskam założony zysk...???

czy do tego mam użyć np AccountProfit() ??? jeśli tak to jak?
jest kilka możliwości ale najpewniejsza to:
sprawdzenie wszystkich zamkniętych i otwartych transakcji pod względem łącznego ich zysku i jeśli jest mniejszy to dopiero otworzenie pozycji
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
potrzebujący ;)
Bywalec
Bywalec
Posty: 17
Rejestracja: 29 kwie 2012, 23:02

Nieprzeczytany post autor: potrzebujący ;) »

Tig3r pisze:sprawdzenie wszystkich zamkniętych i otwartych transakcji pod względem łącznego ich zysku i jeśli jest mniejszy to dopiero otworzenie pozycji
dzięki za odpowiedź ale czy możesz mi to jakoś łopatologicznie wytłumaczyć? jaką funkcją mam to zrobić? :oops:
5% z czegoś jest lepsze niż 100% z niczego :P

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

Nieprzeczytany post autor: Propeth »

Witam,
Może mi ktoś wyjasnić dlaczego próbując przetestować nawet głupie Moving Average jako EA nie testuje mi tego? Wyskakuje:
"Moving Average EURUSD,M1: OrderSend error 131" ?

Inna sprawa, że nie potrafię przetestować żadnego EA ponieważ w ogóle nie wyskakują mi rezultaty na sam koniec. Ma ktoś może jakiś poradnik jak poprawnie przetestować robota?

@edit
od razu wrzucę link do robota, którego chciałem przetestować (tylko i wyłącznie po to, żeby zobaczyć jak działa opcja testowania)

http://codebase.mql4.com/8273

Byłbym wdzięczny gdyby ktoś wytłumaczył mi jak mam to wszystko poustawiać żebym mógł to przetestować.

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

Propeth pisze:"Moving Average EURUSD,M1: OrderSend error 131" ?
z dokumentacji :
ERR_INVALID_TRADE_VOLUME 131 Invalid trade volume.

czyli zle dobrana wielkosc pozycji

pozdrawiam
Andrzej Pierz
z poważaniem
Andrzej Pierz
FOREX-SERVICE

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

Nieprzeczytany post autor: Propeth »

Pierz Andrzej pisze: z dokumentacji :
ERR_INVALID_TRADE_VOLUME 131 Invalid trade volume.

czyli zle dobrana wielkosc pozycji

pozdrawiam
Andrzej Pierz
Czyli wystarczy zmienić wielkość LOTA i powinno być po problemie? Dla przykładu:

Zmienić lota z 0.1 na 1, TP z 100 na 1000, SL z 60 na 600 itd?

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

Nieprzeczytany post autor: remyg »

Witam, a ja głowię się nad takim problemem.

Sytuacja jest taka:
1. Otwieram OP_BUY i jednocześnie oczekujący OP_SELLSTOP
2 OP_BUY nie ma SL, a OP_SELLSTOP ma SL (np. 50 pips)
3. Mam założony for loop który zamyka zarówno OP_BUY i ewentualne OP_SELL przy z góry określonym proficie.

I teraz co chciałbym osiągnąć:
4. Jeśli OP_SELL zamknie się na SL to chciałbym natychmiast otworzyć kolejny OP_SELLSTOP!

da się założyć jakiś if na egzekucję bądź nieegzekucję SL??

Nowicjusz uprzejmie prosi o pomoc :))

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

Nieprzeczytany post autor: personov »

Jak mogę uzyskać różnicę dwóch średnich MA na kolejnych tickach wstecz.
Chodzi mi o około 3, 4 ticki.
Kombinuję w ten sposób :

Kod: Zaznacz cały

double wynik[];
int tab=5; 
void start()
{ 
for (int i = tab;i > 0;i--){
  double MA1 = iMA(Symbol(),Period(),4,0,0,0,i);
  double MA2 = iMA(Symbol(),Period(),4,0,0,0,i);
  wynik[i] = (MA1-MA2);}
}
Ale nic nie wychodzi. I nie wyjdzie, bo shift w MA to ilość świec wstecz, a nie ticków.
Pomożecie ?
Solą życia jest kasa.

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

Nieprzeczytany post autor: Esco »

Trzeba zapisywać w tablicy na zasadzie rejestru przesuwnego usuwając najstarsze wartości i wpisując nowe.

Kod: Zaznacz cały

double MA1 = iMA(Symbol(),Period(),4,0,0,0,i);
double MA2 = iMA(Symbol(),Period(),4,0,0,0,i);

//ostatni nadpisujemy przedostatnim itd.
wynik[4] = wynik[3];
wynik[3] = wynik[2];
wynik[2] = wynik[1];
wynik[1] = wynik[0];
wynik[0] = (MA1-MA2); // do bieżącego bufora wpisujmy aktualna wartość
Przy większej liczbie elementów trzeba zrobić pętle automatycznie zmieniająca indeksy.
Ostatnio zmieniony 31 maja 2012, 19:20 przez Esco, łącznie zmieniany 2 razy.

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

Nieprzeczytany post autor: personov »

A możesz przytoczyć jakiś przykład ? Wtedy może jakoś to ogarnę. Bez przykładu niestety nie ruszę dalej.

Dodano po 1 godzinach 38 minutach:

A to było takie proste :) A ja kombinowałem całkiem gdzie indziej :)
Dzięki Esco.
Solą życia jest kasa.

ODPOWIEDZ