Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
sonixh
Stały bywalec
Stały bywalec
Posty: 57
Rejestracja: 13 sty 2011, 19:26

Nieprzeczytany post autor: sonixh »

Kod: Zaznacz cały

if((b==0&&s==0 && BUY==true )||(Ask<opB-dis-spred&&b>=1&&s==0)) { OrderSend(Symbol(),OP_BUY ,LotB,Ask,Slip,0,0,"o/k",Magic,0,Green); }
                                     
 if((s==0&&b==0 && SELL==true )||(Bid>opS+dis-spred&&s>=1&&b==0)) { OrderSend(Symbol(),OP_SELL,LotS,Bid,Slip,0,0,"o/k",Magic,0,Red); }
każde otwarte zlecenie oznaczam jako b lub s, opB i opS to cena otwartej wcześniej pozycji. Pierwszy człon odpowiada za otwieranie zleceń jeśli nie ma nic wcześniej otwartego a drugi odpowiada za otwieranie gdy już wcześniej została jakaś pozycja otwarta.
Faktycznie nie mam otwierania do skutku ale nie pomyślałem o tym bo wcześniejsza wersja działa bez problemów.
ADX obliczam standardowo:

Kod: Zaznacz cały

  double adx_m5       = iADX(Symbol(),TF1,14,PRICE_CLOSE,0,0); 
  double di_p_m5      = iADX(Symbol(),TF1,14,PRICE_CLOSE,1,0); 
  double di_m_m5      = iADX(Symbol(),TF1,14,PRICE_CLOSE,2,0); 
    
  double adx_m15      = iADX(Symbol(),TF2,14,PRICE_CLOSE,0,0); 
  double di_p_m15     = iADX(Symbol(),TF2,14,PRICE_CLOSE,1,0);  
  double di_m_m15     = iADX(Symbol(),TF2,14,PRICE_CLOSE,2,0); 
     
  if ((adx_m5>ADXTrend)&&(di_p_m5>di_m_m5)) { a5m_t = 1; }  
    else if ((adx_m5>ADXTrend)&&(di_p_m5<di_m_m5)) { a5m_t = -1; }
      else { a5m_t = 0; }    
      
  if ((adx_m15>ADXTrend)&&(di_p_m15>di_m_m15)) { a15m_t = 1; } 
    else if ((adx_m15>ADXTrend)&&(di_p_m15<di_m_m15)) { a15m_t = -1; } 
      else { a15m_t = 0; }
  
  bool BUY=false; bool SELL=false; 
  
  if(a5m_t==1 && a15m_t==1){ BUY=true;}    
  
  if(a5m_t== -1 && a15m_t== -1){ SELL=true;}
Obrazek

diodak23
Bywalec
Bywalec
Posty: 5
Rejestracja: 07 gru 2011, 12:25

Nieprzeczytany post autor: diodak23 »

Witam.

Napisałem swoje EA. I podczas próby zamknięcia zlecenia (zamknięcie się nie powiodło) dostałem komunikat: "trade timeout".

Czym było to spowodowane?

Awatar użytkownika
adamkaluza
Pasjonat
Pasjonat
Posty: 1049
Rejestracja: 16 kwie 2011, 11:59

Nieprzeczytany post autor: adamkaluza »

Chciałbym uruchomić coś co pokazuje czas do zakończenia świeczki, ale cokolwiek wrzucam w mt4 to nic nie wyświetla ani o nic nie pyta. Inne automaty działają i się uruchamiają. Po uruchomieniu innych automatów od razu pyta mnie o właściwości, umożliwienie handlu itp. Kiedy uruchamiam skrypt np Candle_Time nie wyświetla nic ani o nic nie pyta. Ktoś może doradzić co robię nie tak?
Pomyśl co powinna zrobić cena żeby zabrać ci pieniądze. Ona to zrobi!

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

Nieprzeczytany post autor: Tig3r »

adamkaluza pisze:Po uruchomieniu innych automatów od razu pyta mnie o właściwości, umożliwienie handlu itp. Kiedy uruchamiam skrypt np Candle_Time nie wyświetla nic ani o nic nie pyta. Ktoś może doradzić co robię nie tak?
Skrypt działa tak że raz się wykonuje i zamyka, więc może to jednak wskaźnik albo EA? spróbuj tam wrzucić i uruchomić
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
adamkaluza
Pasjonat
Pasjonat
Posty: 1049
Rejestracja: 16 kwie 2011, 11:59

Nieprzeczytany post autor: adamkaluza »

To były wskaźniki a ja próbowałem je uruchomić jako strategie, dlatego nic nie pokazywało. Dzięki za pomoc, już działa :)
Pomyśl co powinna zrobić cena żeby zabrać ci pieniądze. Ona to zrobi!

Awatar użytkownika
seba
Pasjonat
Pasjonat
Posty: 417
Rejestracja: 20 paź 2010, 17:06

Nieprzeczytany post autor: seba »

jak nalezy zapisac przedzial liczbowy

mamy taki kod:

Kod: Zaznacz cały

if(ind_bufferOp[1] > 7 ) { theColor = Red ; } else {
if(ind_bufferOp[1] < -7) { theColor = Red ; ind_bufferOp[1] = -1 * ind_bufferOp[1]; } else 
if(ind_bufferOp[1] < 0 ) { theColor = Green ; ind_bufferOp[1] = -1 * ind_bufferOp[1]; } else 
{ theColor = Green ; } } 
czyli liczby wieksze niz 7 i mniejsze niz -7 sa koloru czerwonego..pozostale liczby sa koloru zielonego
a teraz jak powiniennem to zapisac gdy chcialbym dodac trzeci kolor dla liczb z przedzialu < -6, -3 > i <3, 6>

czyli:
(do -7) czerowne
(-6, -3) np niebieskie
(-2, 2) zielone
(3, 6) np niebieskie
(ponad 7) czerowne

mam nadzieje ze w miare zrozumiale napisalem o co mi chodzi :)
Ruch zwrotny skończy się dokładnie w miejscu ustawienia SL

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

Nieprzeczytany post autor: Tig3r »

seba pisze:a teraz jak powiniennem to zapisac gdy chcialbym dodac trzeci kolor dla liczb z przedzialu < -6, -3 > i <3, 6>

Kod: Zaznacz cały

if(ind_bufferOp[1] < -3 && ind_bufferOp[1] > -6 )
if(ind_bufferOp[1] < 6 && ind_bufferOp[1] > 3 )
itd

P.S. else w twoim kodzie są zbędne - po prostu jak nie spełni się warunek to powinno do następnego if lecieć i tyle

Kod: Zaznacz cały

theColor = Green ;
if(ind_bufferOp[1] > 7 || ind_bufferOp[1] < -7) { theColor = Red ; }
if(ind_bufferOp[1] < 0 ) { theColor = Green; }
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

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

Nieprzeczytany post autor: Pierz Andrzej »

Tig3r pisze:P.S. else w twoim kodzie są zbędne - po prostu jak nie spełni się warunek to powinno do następnego if lecieć i tyle
zwroc uwage ze po ostatni else nie ma if`a ;)


mozesz to zrobic np tak :

Kod: Zaznacz cały

if (MathAbs(buffer) >= 7) kolor_czerwony;
if (MathAbs(buffer) >= 3 && MathAbs(buffer) <= 6) kolor_niebieski;
if (MathAbs(buffer) >= 0 && MathAbs(buffer) <= 2) kolor_zielony;
pozdrawiam
Andrzej Pierz

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

Nieprzeczytany post autor: Tig3r »

Pierz Andrzej pisze:Tig3r napisał:
P.S. else w twoim kodzie są zbędne - po prostu jak nie spełni się warunek to powinno do następnego if lecieć i tyle

zwroc uwage ze po ostatni else nie ma if`a Wink
Tak zwróciłem, dlatego podałem kod w którym wpierw barwi na jeden standardowy kolor a potem ew zmienia na podstawie if'ów :)
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
seba
Pasjonat
Pasjonat
Posty: 417
Rejestracja: 20 paź 2010, 17:06

Nieprzeczytany post autor: seba »

dzieki chlopaki wreszcie wszystko zrobilem tak jak trzeba :)
zastosowalem metode TIGERA bo przy tej funkcji "MathAbs" jakies minusy mi sie pojawialy :)
tak czy inaczej wszystko dziala
dzieki jeszcze raz


a jest moze jakas prosta funkcja ktora uruchomila by alarm dziwiekowy przy wystapieniu jakiejs konkretnej liczby...np tej 7 z poprzedniego pytania?


PS. po raz kolejny udowadniam sam sobie ze programista nigdy nie bede :DDD
Ruch zwrotny skończy się dokładnie w miejscu ustawienia SL

ODPOWIEDZ