Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
mariusztrader
Gaduła
Gaduła
Posty: 112
Rejestracja: 03 gru 2012, 22:29

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

Nieprzeczytany post autor: mariusztrader »

Spotkał się ktoś może z EA opierającym się o Support&Resistance (mogą być ostatnie szczyty/dołki) i formacje świecowe?
"Nie ma rzeczy niemożliwych, istnieją jedynie trudne do zrealizowania"

JAREK67
Maniak
Maniak
Posty: 2143
Rejestracja: 13 lip 2006, 11:21

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

Nieprzeczytany post autor: JAREK67 »

mariusztrader pisze:Spotkał się ktoś może z EA opierającym się o Support&Resistance (mogą być ostatnie szczyty/dołki) i formacje świecowe?

Sporo w tym temacie walczyłem. Poczytaj od tego momentu:
http://forex-nawigator.biz/forum/s-d-ta ... ml#p605703
Odpuściłem ostatecznie.

Awatar użytkownika
Kuba Brzeziński
Gaduła
Gaduła
Posty: 353
Rejestracja: 26 paź 2009, 10:38

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

Nieprzeczytany post autor: Kuba Brzeziński »

Witam kolegów trader`ów

Mam Prośbę,,,, czy jest na sali ktoś kto zna się... nie koniecznie dobrze na języku MQL ??
otóż mam zapisany skrypt do automatycznego handlu na bazie Moving Average. Po wielu walkach i wkur**** udało się coś skleić.Niestety, dla mnie to jest w dalszym ciągu czarna magia. Przy kompilacji wyświetliło mi łącznie 14 błędów i 7 warnigs, za cholere nie wiem jak to wyeliminować.Części problemów się pozbyłem ale stanąłem i nie mogę ruszyć dalej, Gdy klikam (by zobaczyć konkretne wersy i linie to np, zaznacza mi nawias albo "c" przy crossed. nie wiem gdzie popełniam błąd i nie wiem jak mam się go pozbyć... jeżeli jest ktoś w stanie pomóc bądź chociaż nakierować to będe wdzięcyzny.

Szkoda by było gdyby to nie dzialało...poprostu dalej będe pracowal na pólautomacie.Jednak czas i obowiązki jakie mam uniemożliwiają mi czasami wejście w pozycje o dogodnych warunkach stąd też moja prośba o pomoc.

pozdrawiam
Kuba
Racja jest jak dupa,każdy ma swoją - J.Piłsudski

Awatar użytkownika
bfx
Pasjonat
Pasjonat
Posty: 1260
Rejestracja: 11 sty 2013, 15:49

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

Nieprzeczytany post autor: bfx »

Użyj funkcji GetLastError() żeby sprawdzic co to za błąd. Wklej tą listę błędów tutaj to może coś podpowiem. :)
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"

Awatar użytkownika
Kuba Brzeziński
Gaduła
Gaduła
Posty: 353
Rejestracja: 26 paź 2009, 10:38

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

Nieprzeczytany post autor: Kuba Brzeziński »

Witam ... gdybyś dopatrzył się czegokolwiek to byłoby zajeb*ście....
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Racja jest jak dupa,każdy ma swoją - J.Piłsudski

WojtexWay
Gaduła
Gaduła
Posty: 145
Rejestracja: 18 wrz 2012, 19:22

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

Nieprzeczytany post autor: WojtexWay »

Kuba Brzeziński pisze:Witam ... gdybyś dopatrzył się czegokolwiek to byłoby zajeb*ście....
A tak w ogóle to czego oczekujesz? Bo chyba nie chodzi o przetłumaczenie tego, co masz czarno na białym?!
Ewidentnie masz błędy kompilacji (w składni) a więc bez kodu nikt nie wskaże dokładnej przyczyny problemu. Szczególnie że jeden błąd może powodować kolejne.

Najprościej będzie jak przepiszesz wszystko od początku (raczej nie jest tego dużo), a po wprowadzeniu każdej nowej instrukcji będziesz kompilował kod i na bieżąco poprawiał pojawiające się błędy.

Awatar użytkownika
bfx
Pasjonat
Pasjonat
Posty: 1260
Rejestracja: 11 sty 2013, 15:49

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

Nieprzeczytany post autor: bfx »

Same podstawowe błędy. Jakbyś wrzucił ten skrypt to bym Ci je poprawił i mógłbyś sobie porównac co było źle. Niektóre nie pamiętam co znaczą ale jakby zobaczył to odrazu bym wiedział. Mniej więcej tak to wygląda:
1) brak zamknięcia tego nawiasu }
2) użycie złej zmiennej
3) nie ma zdefiniowanej takiej funkcji
4) zła liczba parametrów funkcji
5) musiałbym zobaczyc
6) brak ;
7) brakuje jakiegoś operatora
8) zły operator
9) musiałbym zobaczyc
10) funkcje operujące na zleceniach powinny byc sprawdzane np. int ord = OrderSelect(...
11) brak operatora
12) brak zamknięcia nawiacu
13) zły opreator
14) to samo co 10
15) to samo co 10
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"

Awatar użytkownika
Kuba Brzeziński
Gaduła
Gaduła
Posty: 353
Rejestracja: 26 paź 2009, 10:38

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

Nieprzeczytany post autor: Kuba Brzeziński »

w takiej formie czy inaczej to przedstawić ???
//+------------------------------------------------------------------+
//| Blue Line .mq4 |
//| General Investments Jakub Brzeziński |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "General Investments Jakub Brzeziński"
#property link "https://www.mql5.com"
#property version "1.00"
#property strict

//--- input parameters
input int longMAPeriod=50;
input int shortMAPeriod=30;
input double takeProfit=1500.0;
input double stopLoss=300.0;
input double lot=0.1;

int CROSSED_UP = 1;
int CROSSED_DOWN = 2;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int init() {

return(0);

}
//---

//---

//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
int denit() {

return(0);
}

//---


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

}

//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {

if (validate()) {

int crossed = crossDirection();
Print("Przeciecie: "+crossed);

closePositions(crossed);
openPositions(crossed);
}

return(0);
}

bool validate() {
if(Bars < 100) {
Print("bars less than 100");
return(false);
}

if(stopLoss < 100) {
Print("stopLoss less than 100");
return(false);
}

return(true);
}

int crossDirection() {
double previousLongMA, previousShortMA, currentLongMA, currentShortMA;

previousLongMA = iMA(NULL, 0, longMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 2);
currentLongMA = iMA(NULL, longMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);

previousShortMA = iMA(NULL, 0,shortMAPeriod, 0, MODE_EMA, PRICE_CLOSE, 2);
currentShortMA = iMA(NULL, 0, shortMAPeriod, 0,MODE_EMA, PRICE_CLOSE, 1).


if ((previousLongMA >= previousShortMA) && (currentLongMA < currentShortMA)) {
return(CROSSED_UP);
}
else if ((previousLongMA <= previousShortMA) && (currentLongMA > currentShortMA)) {
return)(CROSSED_DOWN);
}
else {
return(0);
}
}

void closePositions(int crossed) {
int position;
int total = OrdersTotal();

if (total > 0) {
for(position = 0; position < total; position++) {
OrderSelect(position, SELECT_BY_POS, MODE_TRADES);

if((OrderType() <= OP_SELL) && (OrderSymbol() ==Symbol())) {

if ((OrderType() == OP_BUY) && (crossed ==CROSSED_DOWN)) {
closeBuyPosition();
}
else if (OrderType() == OP_SELL) && (crossed == CROSSED_DOWN)) {
closeSellPosition();
}
}
}
}
}

void closeBuyPosition() {
OrderClose(OrderTicket(), OrderLots(),Bid, 3, Violet);
}

void closeSellPosition() {
OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet);
}

void openPosition(int crossed) {
int total = OrdersTotal();

if (total == 0) {
if (crossed == CROSSED_UP) {
openBuyPosition();
}

if (crossed == CROSSED_DOWN) {
openSellPosition();
}
}
}

void openBuyPosition() {

int position = OP_BUY;
double volume = lot;
double price = Ask;
double sl = Bid - stopLoss * Point;
double tp = 0;
if (takeProfit > 0) {
tp = Ask + takeProfit * Point;
}
color clr = Green;

openPosition(position, volume, price, sl, tp, clr);
}

void openSellPosition() {

int position = OP_SELL;
double volume = lot;
double price = Bid;
double sl = Ask + stopLoss * Point;
double tp = 0;
if (takeProfit > 0) {
tp = Bid - takeProfit * Point;
}
color clr = Red;

openPosition(position, volume, price, sl, tp, clr);
}

void openPosition(int position, double volume, double price,
double sl, double tp, color clr) {

int ticket = OrderSend(Symbol(), position, volume, price, 3,
sl, tp, "General Investments EA", 12345, 0, clr);

if (ticket > 0) {
if (OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES)) {
Print("Pozycja otwarta: ", OrderOpenPrice());
}
} else {
Print("Blad otwarcia pozycji: ", GetLastError());
}
}

-- Dodano: sob 20-12-2014, 19:01 --
bfx pisze:Same podstawowe błędy. J
;)
Racja jest jak dupa,każdy ma swoją - J.Piłsudski

JAREK67
Maniak
Maniak
Posty: 2143
Rejestracja: 13 lip 2006, 11:21

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

Nieprzeczytany post autor: JAREK67 »

[quote="Kuba Brzeziński"][/quote]
Trochę pozamiatałem.
Walcz dalej sam.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
faflik
Gaduła
Gaduła
Posty: 151
Rejestracja: 27 gru 2007, 16:58

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

Nieprzeczytany post autor: faflik »

w linijce 108 masz jeden nawias za dużo: return)(CROSSED_DOWN);
w 136 o jeden za mało: else if(OrderType()==OP_SELL) && (crossed==CROSSED_DOWN))
w 99 masz . zamiast ; : currentShortMA = iMA(NULL,0,shortMAPeriod,0,MODE_EMA,PRICE_CLOSE,1).

ODPOWIEDZ