Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

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???
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)/
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
pietra997
Stały bywalec
Stały bywalec
Posty: 56
Rejestracja: 30 paź 2007, 16:00

Nieprzeczytany post autor: pietra997 »

kolejny problem;/ nie zamyka mi pozycji przy nastepnej swiecy spadkowej(jak jest buy) albo zwyzkujacej (jak jest sell)
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

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

Nieprzeczytany post autor: Tig3r »

tu jest błąd:

Kod: Zaznacz cały

OrderClose(ticket
i tu:

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ć..

Awatar użytkownika
pietra997
Stały bywalec
Stały bywalec
Posty: 56
Rejestracja: 30 paź 2007, 16:00

Nieprzeczytany post autor: pietra997 »

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

none
Stały bywalec
Stały bywalec
Posty: 23
Rejestracja: 09 sty 2012, 12:16

tick

Nieprzeczytany post autor: none »

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

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);


próbuje zapisywac cene Ask do csv kodem jak wyżej ale wydaje mi sie ze zapisuje nie o tej godz. co ustawiam

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

Nieprzeczytany post autor: Tig3r »

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....
Możesz wykorzystać funkcje:
http://www.forex-nawigator.biz/dyskusje ... 320#229320

none pisze:Witam jest jakas funkcja która pozwala odczytać cene Ask, lub Bid przykładowo o określonej godz. wstecz ?
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()
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ć..

GoAway
Stały bywalec
Stały bywalec
Posty: 32
Rejestracja: 15 sty 2012, 22:34

Nieprzeczytany post autor: GoAway »

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 ?

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

Nieprzeczytany post autor: Pierz Andrzej »

GoAway pisze:1. W jaki najprostszy sposób "skomunikować" się z EA ? Chciałbym ustawić sobie jakaś zmienna, podczas gdy strategia chodzi.
zmienne globane , GlobalVariables-> mql

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 ?
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"

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

GoAway
Stały bywalec
Stały bywalec
Posty: 32
Rejestracja: 15 sty 2012, 22:34

Nieprzeczytany post autor: GoAway »

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 ;)

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

Nieprzeczytany post autor: Pierz Andrzej »

GoAway 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.
zmienne globalne mozesz rowniezzmieniac recznie ;) .. przycisk F3 ....
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

ODPOWIEDZ