Forma: liczba całkowita dodatnia, służy jedynie do rozpoznawania transakcji to jaką już ją ustawisz zależy od Ciebie. Ważnie aby 2 różne roboty miały inny nr - no chyba że chcesz aby oby dwa ze sobą "współgrały" (o ile tak zostały zaprogramowane)/pietra997 pisze:Jaką formę może mieć MagicNumber? czy liczba ta jest różna dla różnych brokerów?Chodzi mi o czy jest to np 123 czy moze 123456???
Wszystkie pytania dozwolone początkujących programistów
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
kolejny problem;/ nie zamyka mi pozycji przy nastepnej swiecy spadkowej(jak jest buy) albo zwyzkujacej (jak jest sell)
prosze o pomoc
prosze o pomoc
Kod: Zaznacz cały
if(Hour()>7 && 21>Hour()){
// Open buy direct
if(BarOneUp==1&&BarTwoUp==1&&BarThreeUp==1&&halt1!=1){
ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),1,slb,tpb,"Candle bug buy order",MagicNumber1,0,Blue);
closebuy=1;
}
// Open sell direct
if(BarOneDown==1&&BarTwoDown==1&&BarThreeDown==1&&halt2!=1){
ticket1=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),1,sls,tps,"Candle bug sell order",MagicNumber2,0,Green);
closebuy=1;
}
}
//-------------------------------------------------------------------------------------------------
// Closing criteria
//-----------------------------------------------------------------------------------------------
if(Volume[0]>1) return;
if(iOpen(NULL,PERIOD_M30,1)>iClose(NULL,PERIOD_M30,1))int CloseBuy=1;
if(iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1))int CloseSell=1;
Comment(CloseBuy,CloseSell);
if(closesell==1||closebuy==1){// start
if(OrdersTotal()>0){
for(i=1; i<=OrdersTotal(); i++){ // Cycle searching in orders
if (OrderSelect(i-1,SELECT_BY_POS)==true){ // If the next is available
if(OrderMagicNumber()==MagicNumber1&&CloseBuy==1) { OrderClose(ticket,OrderLots(),NormalizeDouble(Bid,Digits),Slippage,CLR_NONE); }
if(OrderMagicNumber()==MagicNumber2&&CloseSell==1) { OrderClose(ticket1,OrderLots(),NormalizeDouble(Ask,Digits),Slippage,CLR_NONE); }
}
}
}
}
}// stop
Panie rozswietl umysly inwestorów, pozbądz ich chciwosci,strachu,nadziei
daj im duzo zdrowia,sczsesia osobistegi i pieniedzy aby nie musieli zarabiac na giełdzie
daj im duzo zdrowia,sczsesia osobistegi i pieniedzy aby nie musieli zarabiac na giełdzie
tu jest błąd:
i tu:
Powinno być:
Kod: Zaznacz cały
OrderClose(ticket
Kod: Zaznacz cały
OrderClose(ticket1
Powinno być:
Kod: Zaznacz cały
OrderClose(OrderTicket()
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
tak tez juz probowalem wczesniej i nic nie dziala nie zamyka mi tej pozycji w tym miejscu co chce, on generalnie w ogole nie chce zamknac pozycji jak następnej swiecy dołującej jak ma otwartego longa. nie mam juz pomyslow jak to rozwiazac....
Panie rozswietl umysly inwestorów, pozbądz ich chciwosci,strachu,nadziei
daj im duzo zdrowia,sczsesia osobistegi i pieniedzy aby nie musieli zarabiac na giełdzie
daj im duzo zdrowia,sczsesia osobistegi i pieniedzy aby nie musieli zarabiac na giełdzie
tick
Witam jest jakas funkcja która pozwala odczytać cene Ask, lub Bid przykładowo o określonej godz. wstecz ?
np. cena Ask dzisiaj o godz. 10
próbuje zapisywac cene Ask do csv kodem jak wyżej ale wydaje mi sie ze zapisuje nie o tej godz. co ustawiam
np. cena Ask dzisiaj o godz. 10
Kod: Zaznacz cały
extern int TradeHour=10;
extern int TradeMinutes=0;
extern int TradeSeconds=0;
extern int TradeYear=2012;
extern int TradeMonth=4;
extern int TradeDayOfWeek=3
if ( ( TradeYear==Year() )&&( TradeMonth==Month() )&&( TradeDayOfWeek==DayOfWeek() )&&
( (TradeHour)==Hour() )&&((TradeMinutes)==Minute())&&(TradeSeconds>=Seconds()) )
{
int Ask_before=MarketInfo(Symbol(),MODE_ASK);
int handle=FileOpen("info.csv", FILE_CSV|FILE_READ|FILE_WRITE, ',');
FileWrite(handle,Ask_before,TimeToStr(orderOpen));
FileClose(handle);
Możesz wykorzystać funkcje:pietra997 pisze:tak tez juz probowalem wczesniej i nic nie dziala nie zamyka mi tej pozycji w tym miejscu co chce, on generalnie w ogole nie chce zamknac pozycji jak następnej swiecy dołującej jak ma otwartego longa. nie mam juz pomyslow jak to rozwiazac....
http://www.forex-nawigator.biz/dyskusje ... 320#229320
Nie gdyż MT4 nie przechowuje ich, jedynie co możesz odczytać to to co masz na świecy: Open High Close Low i Volume przy pomocy funkcji iBarShift()none pisze:Witam jest jakas funkcja która pozwala odczytać cene Ask, lub Bid przykładowo o określonej godz. wstecz ?
Jeśli byś chciał mieć takie informacje musiałbyś je logować do pliku czy bazy.
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
1. W jaki najprostszy sposób "skomunikować" się z EA ? Chciałbym ustawić sobie jakaś zmienna, podczas gdy strategia chodzi.
2. Czy jest jakis timeout na wykonanie operacji ? np. przyjdzie tick, funkcja start się zacznie wykonywać, załóżmy będzie to trwało długo, pozostałe ticki zaczynają sie buforować, czy następuje przerwanie wykonywania się funkcji i startuje od początku. Jeśli się buforują to jaki jest max dla bufora ?
2. Czy jest jakis timeout na wykonanie operacji ? np. przyjdzie tick, funkcja start się zacznie wykonywać, załóżmy będzie to trwało długo, pozostałe ticki zaczynają sie buforować, czy następuje przerwanie wykonywania się funkcji i startuje od początku. Jeśli się buforują to jaki jest max dla bufora ?
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
zmienne globane , GlobalVariables-> mqlGoAway pisze:1. W jaki najprostszy sposób "skomunikować" się z EA ? Chciałbym ustawić sobie jakaś zmienna, podczas gdy strategia chodzi.
funkcja start jest uruchomiona w momencie nadejscia ticku i jest wykonywana do mementu jej ukonczenia , jezeli miedzy czasie nadchodza kolejne ticki nie wywoluja ponownie funkcji start wiec sa "olewane"GoAway pisze:2. Czy jest jakis timeout na wykonanie operacji ? np. przyjdzie tick, funkcja start się zacznie wykonywać, załóżmy będzie to trwało długo, pozostałe ticki zaczynają sie buforować, czy następuje przerwanie wykonywania się funkcji i startuje od początku. Jeśli się buforują to jaki jest max dla bufora ?
pozdrawiam
Andrzej PIerz
z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE
Dzieki.
Ad.1
Czyli potrzebuje kolejnego EA. które mi ustawi GV. Problem jest taki, że mam 3 działajace takie same EA na 3 różnych parach. Nie chciałbym modyfikować EA (zeby GV w kazdym miało inna nazwę), a musze poinformować tylko jedno EA. Chyba, że ustawił bym przez EA sterujące GV na nazwę pary na której obecnie chodzi EA, Wtedy każde z tych trzech chodzących EA jeśli wartość GV się zmieni sprawdzi czy nazwa pary na której chodzi jest taka sama jak wartość GV.
Dodano po 1 minutach:
Heh, w sumie to mogę jeszcze łatwiej, ustawić GV na magic number tego EA ktore chcę poinformować, wtedy każde EA bedzie sprawdzac czy wartość GV == magic
Ad.1
Czyli potrzebuje kolejnego EA. które mi ustawi GV. Problem jest taki, że mam 3 działajace takie same EA na 3 różnych parach. Nie chciałbym modyfikować EA (zeby GV w kazdym miało inna nazwę), a musze poinformować tylko jedno EA. Chyba, że ustawił bym przez EA sterujące GV na nazwę pary na której obecnie chodzi EA, Wtedy każde z tych trzech chodzących EA jeśli wartość GV się zmieni sprawdzi czy nazwa pary na której chodzi jest taka sama jak wartość GV.
Dodano po 1 minutach:
Heh, w sumie to mogę jeszcze łatwiej, ustawić GV na magic number tego EA ktore chcę poinformować, wtedy każde EA bedzie sprawdzac czy wartość GV == magic

- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
zmienne globalne mozesz rowniezzmieniac recznieGoAway pisze:Dzieki.
Ad.1
Czyli potrzebuje kolejnego EA. które mi ustawi GV. Problem jest taki, że mam 3 działajace takie same EA na 3 różnych parach. Nie chciałbym modyfikować EA (zeby GV w kazdym miało inna nazwę), a musze poinformować tylko jedno EA. Chyba, że ustawił bym przez EA sterujące GV na nazwę pary na której obecnie chodzi EA, Wtedy każde z tych trzech chodzących EA jeśli wartość GV się zmieni sprawdzi czy nazwa pary na której chodzi jest taka sama jak wartość GV.

ale i tak musisz kawalek kodu wstawic do ea zby wiedzialo co musi zrobic przy zmianie wartosci zmiennej ..
z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE