Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
new7071
Bywalec
Bywalec
Posty: 15
Rejestracja: 03 gru 2016, 22:31

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: new7071 »

Pierz Andrzej pisze:personov tamten kod z kropkami jest poprawny tylko nie pod mt4 a pod mt5 ;-) bo jest to przykład w MQL5
tak próbuje swych sił w 5

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: personov »

Andrzej ma rację. Ten kod co wkleiłeś jest z MQL5.
Co chcesz programować ? MQL4, czy MQL5 ?
if(Close[1]<Open[1])<---warunek
(OrderSend(<---jak dobrze rozumiem wysłanie komendy buy stop?
Symbol(),<---czy w nawiasie powinno się zapisać symbol instrumentu
Jeśli jest Symbol() oznacz to symbol bieżący.
OP_BUY,<-- to rozumiem komenda buy co dokładnie ma robić komp
lot<---gdzie uzupełnia się ilość lotów?
Możesz tu wpisać konkretną wartość lub możesz zdefiniować wartość np. double lot= 0.9;
i od tej pory będziesz miał w tym miejscu 0.9
,Ask,2,0,0,<---co to są za wartości?
Opisałem wcześniej.
"",magic,<--to juz znalazłem numer zlecenia
Nie. To nie numer zlecenia. To numer kolejnego EA jeśli masz włączonych kilka takich EA na jednej platformie musisz nadać każdemu inny numer żeby się nie "gryzły".
0,Green);<--- co to za wartości?
Wartość wygasania zlecenia oczekującego i kolor strzałki na wykresie. Też opisałem wcześniej.
Ostatnio zmieniony 21 gru 2016, 20:27 przez personov, łącznie zmieniany 1 raz.
Solą życia jest kasa.

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: Pierz Andrzej »

spróbuj wcisnąć F1 w meta edytorze , znajdź funkcje OrderSend i może to bardziej rozjaśni Ci jej konstrukcje , masz tam też przykłady .
z poważaniem
Andrzej Pierz
FOREX-SERVICE

new7071
Bywalec
Bywalec
Posty: 15
Rejestracja: 03 gru 2016, 22:31

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: new7071 »

Pierz Andrzej pisze:spróbuj wcisnąć F1 w meta edytorze , znajdź funkcje OrderSend i może to bardziej rozjaśni Ci jej konstrukcje , masz tam też przykłady .
jak należy definiować takie komendy jak close[1] etc bo jak próbuje kompilować ten prosty kod na buy stopa to mi krzyczy ze nie są zdefiniowane praktycznie wszystkie komendy a jak definijue close jako input int, Char, Short to komp się czepia do nawiasu kwadratowego. Poza tym wydaje mi się że close czy open powinno być zdefiniowane z urzędu :)

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: personov »

Zdefiniowane z urzędu to jest, ale ważne są takie szczegóły jak wielkość liter.
Cny świecy to pierwsza duża liter, resztę małych i nawias kwadratowy z numerem świecy wstecz.
Np. Close[3]
Oprócz tego musi być składnia całości. Wszystko w odpowiednich blokach ( init, start itp. )
Co masz ? Pokaż.
Solą życia jest kasa.

new7071
Bywalec
Bywalec
Posty: 15
Rejestracja: 03 gru 2016, 22:31

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: new7071 »

#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+


int OnInit()
{
//---
if(Close[1]<Open[1])Order Send( OrderSend(Symbol(),OP_BUY,1,Ask,2,10,20,"",magic,0,Green);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---


}
//+------------------------------------------------------------------+
////oczywiście to kompiluje do 5 po tym jak program załapie to co teraz jest problemem będę próbował szukać różnic 4 a 5

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: personov »

Kompiluj to w MT4 czyli otwierasz MetaEditorem i klikasz "Kompiluj".
Całą frazę z warunkiem musisz dać do OnTick.
Init to wszystko co ma EA wykonać przy załadowaniu na wykres, deinit to co ma zrobić po wyłączeniu EA, a OnTock to wszystko co ma robić w trakcie działania.

-- Dodano: śr 21-12-2016, 21:40 --

SL i TP nie możesz wpisać 10 i 20, bo jest to wartość cenowa. Czyli jak chciałbyś mieć SL 10 punktów a TP 20 punktów to SL wpisujesz Ask-10*Point, a TP Ask+20*Point.
To oznzacza punkty. Jak chcesz mieć pipsy to musisz to przeliczyć na pipsy.
Solą życia jest kasa.

new7071
Bywalec
Bywalec
Posty: 15
Rejestracja: 03 gru 2016, 22:31

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: new7071 »

jak przeniosłem do ontick i zapisałem plik jako mq4 to juz sie nie czepia do colse ale jeszcze czepia się do:
Order, magic<-- undeclared
dwa razy do ; <--unexpected token
do ) <--unexpected end of program
Send <-- some operator exepted

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: personov »

Zamiast magic wpisz jakąś liczbę całkowitą.
I masz wpisane dwukrotnie OrderSend ( literówka )
I zdefiniuj działanie np. :

Kod: Zaznacz cały

int c;
if(Close[1]<Open[1])c=OrderSend(Symbol(),OP_BUY,1,Ask,2,Ask-0.001,Ask+0.002,"",1234,0,Green);
Solą życia jest kasa.

new7071
Bywalec
Bywalec
Posty: 15
Rejestracja: 03 gru 2016, 22:31

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: new7071 »

personov pisze:Zamiast magic wpisz jakąś liczbę całkowitą.
I masz wpisane dwukrotnie OrderSend ( literówka )
I zdefiniuj działanie np. :

Kod: Zaznacz cały

int c;
if(Close[1]<Open[1])c=OrderSend(Symbol(),OP_BUY,1,Ask,2,Ask-0.001,Ask+0.002,"",1234,0,Green);
całość skopiowałem kropka w kropkę i dalej to samo :(

ODPOWIEDZ