Nowa wersja MT4 - Build 574 ! UWAGA !

Sprawy techniczne dotyczące poszczególnych platform handlowych.
Awatar użytkownika
Leonardo
Pasjonat
Pasjonat
Posty: 638
Rejestracja: 01 kwie 2013, 21:54

Re: Nowa wersja MT4 - Build 574 ! UWAGA !

Nieprzeczytany post autor: Leonardo »

Taki wskaźnik, działa ok to nie będę nawet grzebał w nim, to tak na szybko poprawiałem :D
"Y" gdzieś zapewne był modyfikowany bo inaczej by to nie działało :)
"Najważniejsze nie jest to, co robisz, ale to, jak to robisz."
"Dokładnie wiedz czego szukasz, łatwiej będzie znaleźć."
"Pomyśl, zanim pomyślisz."

Awatar użytkownika
rayzeel
Gaduła
Gaduła
Posty: 357
Rejestracja: 05 lis 2008, 14:47

Re: Nowa wersja MT4 - Build 574 ! UWAGA !

Nieprzeczytany post autor: rayzeel »

Po aktualizacji ShellExecuteA nie działa. Nie wiem nawet co się dzieje, nie wykonuje funkcji, zero komunikatów o błędach. Szukam o co chodzi. Jakby ktoś znał odp. to będę wdzięczny. Idzie się wk....ić na takie rzeczy !

Edit:
w sumie to dodam, że robiłem coś takiego
ShellExecuteA(0, "Open", "java", args, TerminalPath(), 0);

i działało, a po aktualizacji nic się nie dzieje. Żadnych błędów też nie ma. Nawet jak ustawię "pytaj o pozwolenie wykonania dll" to też nic nie wyskakuje.

Awatar użytkownika
lolek
Gaduła
Gaduła
Posty: 335
Rejestracja: 26 lut 2008, 00:12

Re: Nowa wersja MT4 - Build 574 ! UWAGA !

Nieprzeczytany post autor: lolek »

rayzeel pisze:Po aktualizacji ShellExecuteA nie działa. Nie wiem nawet co się dzieje, nie wykonuje funkcji, zero komunikatów o błędach. Szukam o co chodzi. Jakby ktoś znał odp. to będę wdzięczny. Idzie się wk....ić na takie rzeczy !

Edit:
w sumie to dodam, że robiłem coś takiego
ShellExecuteA(0, "Open", "java", args, TerminalPath(), 0);

i działało, a po aktualizacji nic się nie dzieje. Żadnych błędów też nie ma. Nawet jak ustawię "pytaj o pozwolenie wykonania dll" to też nic nie wyskakuje.
Spróbuj to wywołanie przenieść do DLL i wywołać pośrednio przez DLL
Wtedy możesz wywołać w DLL funkcje sprawdzające błędy i zapisać do pliku log albo wywołać messagebox i sprawdzić czy działa.
Ja miałem takie przypadki że nawet w DLL nie mogłem utworzyć socketa żeby normalnie funkcjonował i u mnie skrypt komunikuje się z DLL a DLL z oddzielną aplikacją i dopiero ta aplikacja wykonuje docelowe zadania.
Tak samo nie działa prawidłowo współdzielenie pamięci.
Są błędy mt4 i są błędy windowsa i trzeba stosować różne sztuczki i iść okrężną drogą.

ade25
Gaduła
Gaduła
Posty: 230
Rejestracja: 27 cze 2013, 19:47

Re: Nowa wersja MT4 - Build 574 ! UWAGA !

Nieprzeczytany post autor: ade25 »

A ja mam taki problem pobrałem platformę z Admirala mt4 demo i wklejam ea i go nie wykrywa a na plaftormie od armada jest

Ok rozwiązłem problem otwieramy w platformie Plik, Otwórz folder danych i tam wklejamy naszego EA i wtedy go wykrywa

Awatar użytkownika
rayzeel
Gaduła
Gaduła
Posty: 357
Rejestracja: 05 lis 2008, 14:47

Re: Nowa wersja MT4 - Build 574 ! UWAGA !

Nieprzeczytany post autor: rayzeel »

lolek pisze:
rayzeel pisze:Po aktualizacji ShellExecuteA nie działa. Nie wiem nawet co się dzieje, nie wykonuje funkcji, zero komunikatów o błędach. Szukam o co chodzi. Jakby ktoś znał odp. to będę wdzięczny. Idzie się wk....ić na takie rzeczy !

Edit:
w sumie to dodam, że robiłem coś takiego
ShellExecuteA(0, "Open", "java", args, TerminalPath(), 0);

i działało, a po aktualizacji nic się nie dzieje. Żadnych błędów też nie ma. Nawet jak ustawię "pytaj o pozwolenie wykonania dll" to też nic nie wyskakuje.
Spróbuj to wywołanie przenieść do DLL i wywołać pośrednio przez DLL
Wtedy możesz wywołać w DLL funkcje sprawdzające błędy i zapisać do pliku log albo wywołać messagebox i sprawdzić czy działa.
Ja miałem takie przypadki że nawet w DLL nie mogłem utworzyć socketa żeby normalnie funkcjonował i u mnie skrypt komunikuje się z DLL a DLL z oddzielną aplikacją i dopiero ta aplikacja wykonuje docelowe zadania.
Tak samo nie działa prawidłowo współdzielenie pamięci.
Są błędy mt4 i są błędy windowsa i trzeba stosować różne sztuczki i iść okrężną drogą.
Dzięki za wskazówkę. Może to tego jeszcze wrócę bo na razie zrobiłem komunikację na socketach i działa elegancko na moim kompie, a na win 2008 server (VPS) się wywala. Więcej opisałem w odrębnym wątku: http://forex-nawigator.biz/forum/unreso ... ml#p653001 , jeśli miałbyś chwilę zerknąć. Może coś podpowiesz. Dzięki jeszcze raz.

Awatar użytkownika
andy11
Maniak
Maniak
Posty: 4751
Rejestracja: 22 sie 2011, 14:36

Re: Nowa wersja MT4 - Build 574 ! UWAGA !

Nieprzeczytany post autor: andy11 »

Tymek pisze:Ja mam build 600 i w funkcji klasy jak najbardziej działa i się kompiluje.
sprawdź czy masz linie:
#property strict
wtedy kompiluje przy pomocy nowego kompilatora
czesc Tymek...
wlasnie mi zaktualizowala MT4 do bulid600 i niestety niektore rzeczy nie dzialaja
probowalem komplikowac ale pokazuje mi takie cos:

not all control return a valuue
linia 118
kolumna 1
} // end of init()
_________________________
not all control return a valuue
linia 297
kolumna 1
}// end of start()
_________________________
not all control return a valuue
linia 317
kolumna 1
}// end of deinit()

_________________________

mozesz pomoc jak to rozwiazac..
"...wyniki z przeszlosci wcale nie daja gwarancji zyskow w przyszlosci"...

Awatar użytkownika
Tymek
Pasjonat
Pasjonat
Posty: 648
Rejestracja: 20 mar 2006, 13:39

Re: Nowa wersja MT4 - Build 574 ! UWAGA !

Nieprzeczytany post autor: Tymek »

Daj chociaż jedną funkcję by można było zobaczyć co masz w środku.
Nowy kompilator wymaga zdefiniowania funkcji start, init i deinit zgodnie ze specyfikacja MQL.
Jeżeli masz jakieś odstępstwa to nie działa.
Każdy chce mieć pieniądze, ale pieniądze nie zawsze chcą każdego ;)

Awatar użytkownika
ajot
Gaduła
Gaduła
Posty: 92
Rejestracja: 21 cze 2010, 17:44

Re: Nowa wersja MT4 - Build 574 ! UWAGA !

Nieprzeczytany post autor: ajot »

masz tam na końcu funkcji przed końcowym } wstawione return; lub return(0); ? (najprawdopodobniej nie)
w poprzednim mt4 by to przeszło bez return, teraz z tego co się zorientowałem to jest wymagane, więc trzeba wstawić.
Sam musiałem poprawić trochę swojego niechlujnego kodu ;)

Awatar użytkownika
Tymek
Pasjonat
Pasjonat
Posty: 648
Rejestracja: 20 mar 2006, 13:39

Re: Nowa wersja MT4 - Build 574 ! UWAGA !

Nieprzeczytany post autor: Tymek »

W nowej wersji fakt potrzeba zwrócić wartość ale już nawiasy nie są konieczne ;)
Każdy chce mieć pieniądze, ale pieniądze nie zawsze chcą każdego ;)

Awatar użytkownika
andy11
Maniak
Maniak
Posty: 4751
Rejestracja: 22 sie 2011, 14:36

Re: Nowa wersja MT4 - Build 574 ! UWAGA !

Nieprzeczytany post autor: andy11 »

Tymek pisze:Daj chociaż jedną funkcję by można było zobaczyć co masz w środku.
Nowy kompilator wymaga zdefiniowania funkcji start, init i deinit zgodnie ze specyfikacja MQL.
Jeżeli masz jakieś odstępstwa to nie działa.

// message to the experts log (shows in reverse order)
if(IsTesting() == False)
{
Print("Copyright © 2010 Robert Dee, All Rights Reserved");
Print("Free software for personal non-commercial use only. No guarantees are expressed or implied.");
Print(INDICATOR_NAME+" indicator version "+INDICATOR_VERSION+" for "+RELEASE_LEVEL+" release, compiled with MetaTrader4 Build "+MT4_BUILD);
}
} // end of init()

______________________________________________

// HIDE LINE TRANSITIONS
if(HideTransitions == True)
{
if(UpperLine[shift] != UpperLine[shift+1]) UpperLine[shift+1] = EMPTY_VALUE;
if(LowerLine[shift] != LowerLine[shift+1]) LowerLine[shift+1] = EMPTY_VALUE;
if(Target1[shift] != Target1[shift+1]) Target1[shift+1] = EMPTY_VALUE;
if(Target2[shift] != Target2[shift+1]) Target2[shift+1] = EMPTY_VALUE;
}

shift--; // move ahead one candle
}

// update the status display
StatusMessage();
}// end of start()

_________________________________________________


//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
// cleanup display buffers
for(int i=0; i<Bars; i++)
{
UpperLine = EMPTY_VALUE;
LowerLine = EMPTY_VALUE;
Target1 = EMPTY_VALUE;
Target2 = EMPTY_VALUE;
BuyArrow = EMPTY_VALUE;
SellArrow = EMPTY_VALUE;
BullDot = EMPTY_VALUE;
BearDot = EMPTY_VALUE;
}
Comment("");
}// end of deinit()

_________________________________

teraz mozecie zobaczyc...
i co z tym zrobic..
"...wyniki z przeszlosci wcale nie daja gwarancji zyskow w przyszlosci"...

ODPOWIEDZ