Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

Nieprzeczytany post autor: siersciuch »

Proszę sprawdźcie gdzie mam bład, wyskakuje error 130, pewnie źle SL i TP ustawiłem, ale błąd moze być wyżej spowodowany złym wyliczeniem SL i Tp.

Kod: Zaznacz cały

double wynik[50];
double dodatnia[50];
double ujemna[50];
double suma_dodatnich;
double suma_ujemnych;
double srednia_dodatnich;
double srednia_ujemnych;
int s,sl,l,ilosc_dodatnich,ilosc_ujemnych;
double lots=0.1;
int init(){return(0);}
int deinit(){return(0);}

int start()
{
ilosc_dodatnich=0; // zeruje ilosc dodatnich swiec
ilosc_ujemnych=0; // zeruje ilosc ujemnych swiec
for(int i=1;i<51;i++) // zeruje tablice
{
dodatnia[i]=0;  //dodatniach swiec
ujemna[i]=0;   // i ujemna swiec
}

for( i=1;i<51;i++)
{
   wynik[i]=(Close[i]-Open[i])/Point;
   if(wynik[i]>0 && total(OP_BUY)==0 ) // jesli  swieca jest wzrostowa wtedy, wynik jest przypisywany do tablicy
   {
      wynik[i]=dodatnia[i];
      ilosc_dodatnich++; // zlicza ilosc dodatnich swiec
   }
   if(wynik[i]<0 && total(OP_SELL)==0) // jesli swieca jest spadkowa wtedy, wynik jest przypisywany do tablicy
   {
      wynik[i]=ujemna[i];
      ilosc_ujemnych++; // zlicza ilosc ujemnych swiec
   }
}

if(total(OP_BUY)==0 && total(OP_SELL)==0)
{
   for(i=1;i<51;i++) // dodaje wszystkie dodatnie wyniki
   {
      suma_dodatnich += dodatnia[i];
   }
   for(i=1;i<51;i++)
   {
      suma_ujemnych += ujemna[i] ;
   }
}
srednia_dodatnich = suma_dodatnich/ilosc_dodatnich;
srednia_ujemnych = suma_ujemnych/ilosc_ujemnych;

if(Open[0]<Bid+(srednia_dodatnich*1.5) && total(OP_BUY)==0)
   {
   l= OrderSend(Symbol(),OP_BUY,lots,Bid,3,Bid-srednia_dodatnich,Bid+srednia_dodatnich*2);
   }
   
if(Open[0]>Bid+(srednia_ujemnych*1.5) && total(OP_SELL)==0)
   {
   s= OrderSend(Symbol(),OP_BUY,lots,Bid,3,Bid+srednia_ujemnych,Bid-srednia_dodatnich*2);
   }   
   return(0);
  }
//+------------------------------------------------------------------+


int total(int cmd)
{
int MagicNumber;
   int sum = 0;
   RefreshRates();
   for (int i=0;i<=OrdersTotal();i++)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (Symbol()==OrderSymbol() && cmd==OrderType()&& MagicNumber==OrderMagicNumber()) sum++;
   }
   return(sum);
}   
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

bialy
Stały bywalec
Stały bywalec
Posty: 54
Rejestracja: 16 maja 2011, 20:41

Nieprzeczytany post autor: bialy »

Kod: Zaznacz cały

for( i=1;i<51;i++) 
{ 
   wynik[i]=(Close[i]-Open[i])/Point; 
   if(wynik[i]>0 && total(OP_BUY)==0 ) // jesli  swieca jest wzrostowa wtedy, wynik jest przypisywany do tablicy 
   { 
      dodatnia[i] = wynik[i]; //poprzednio bylo zerowanie wynik[i]
      ilosc_dodatnich++; // zlicza ilosc dodatnich swiec 
   } 
   if(wynik[i]<0 && total(OP_SELL)==0) // jesli swieca jest spadkowa wtedy, wynik jest przypisywany do tablicy 
   { 
      ujemna[i] = wynik[i]; //poprzednio bylo zerowanie wynik[i]
      ilosc_ujemnych++; // zlicza ilosc ujemnych swiec 
   } 
} 
i to tez bym zamienil bo srednia moze miec wiecej miejsc po przecinku

Kod: Zaznacz cały

srednia_dodatnich = NormalizeDouble(suma_dodatnich/ilosc_dodatnich,Digits); 
srednia_ujemnych = NormalizeDouble(suma_ujemnych/ilosc_ujemnych,Digits);
nie sprawdzalem tego w MT4 ale takie bledy zauwazylem, ale nie wiem czy ja to wogole rozumiem

sprawdzilem i zamienilbym jeszcze

Kod: Zaznacz cały

wynik[i]=(Close[i]-Open[i]); 
bo na chwile obecna TP i SL na EURUSD ustawialbys na okolice 8.0000 /ale to musialby byc ruch :)/
Ostatnio zmieniony 03 cze 2011, 02:55 przez bialy, łącznie zmieniany 1 raz.
oszczedzajmy cykle procesora

Awatar użytkownika
thisredone
Stały bywalec
Stały bywalec
Posty: 72
Rejestracja: 05 sie 2010, 17:07

Nieprzeczytany post autor: thisredone »

łatwa sprawa
po OrderSend() w tych samych klamrach dajesz

Kod: Zaznacz cały

Alert(Bid," ",Bid-srednia_dodatnich," ",Bid+srednia_dodatnich*2
ogólnie to jednak błąd generuje ci się pewnie dlatego, że drugi order też masz OP_BUY :P

Awatar użytkownika
BOCZEK
Maniak
Maniak
Posty: 3602
Rejestracja: 26 paź 2010, 14:08

Nieprzeczytany post autor: BOCZEK »

nic nie kumam z programowania.

wiem ze istniej gogle, ale gole przysyła mnie tutaj :P

MT4 tak mam zainstalowane na kompie z 9 miesięcy ale nie tykałem nic w edytorze.

skąd wytrzasnąć strategie? jak ją włączyć? i jak ją ustawiać?

ze wskaźnikami sobie radzę i strategiami.
nie kumam kompletnie automatów, wczoraj się dowiedziałem o tralling stop czy SL STOP, zauważyłem ze pomagają.

z TA mam taki problem ze nie mogę go wyłączyć, nie wiem co to jest profit target....choć się domyślam.


:idea:

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

Nieprzeczytany post autor: personov »

BOCZEK pisze:co to jest profit target
Doslownie "cel zysku", czyli moment, w którym zamierzasz zamknąć pozycję.
BOCZEK pisze:skąd wytrzasnąć strategie?
Możesz kupić ( nie polecam, bo nikt nie sprzedaje dobrej strategii ), możesz sam sobie napisać jeśli znasz się na programowaniu.
Solą życia jest kasa.

Awatar użytkownika
BOCZEK
Maniak
Maniak
Posty: 3602
Rejestracja: 26 paź 2010, 14:08

Nieprzeczytany post autor: BOCZEK »

ogólnie to przydała by mi sie instrukcja obsługi MT
Przeczytanie powyższej wypowiedz może doprowadzić do błędnej oceny sytuacji, spowodować przecenienie własnych możliwości, czego konsekwencją mogą być błędnie podjęte decyzje. Ofiarami mogą paść początkujący jak i doświadczeni inwestorzy.
Tak myślę!

Awatar użytkownika
Ciekawy
Pasjonat
Pasjonat
Posty: 384
Rejestracja: 20 lis 2009, 23:07

Nieprzeczytany post autor: Ciekawy »

BOCZEK pisze:skąd wytrzasnąć strategie? jak ją włączyć? i jak ją ustawiać?

ze wskaźnikami sobie radzę i strategiami.
to sobie radzisz czy nie radzisz?
jeśli chodzi Ci o to jak włączyć EA (Expert Advisor) to musisz w MT otworzyć Narzedzia -> Opcje -> Strategie -> Umożliw handel następnie w zakładce nawigator zaznaczasz interesującą Ciebie strategię i klikasz dodaj do wykresu -> na pulpicie MT masz przycisk Włącz strategie

bialy
Stały bywalec
Stały bywalec
Posty: 54
Rejestracja: 16 maja 2011, 20:41

Nieprzeczytany post autor: bialy »

watek programowania dla poczatkujacych jest jednak dla Ciebie za bardzo zaawansowany bo na pytania ktore zadales trudno jest odpowiedziec konkretnie
kiedys mialem link do ftp'a z masa EA ale albo nie dziala albo nie moge go znalezc. tu moze cos znajdziesz.
http://eaforexfree.blogspot.com/
i dla odprezenia:
http://www.widelec.pl/widelec/1,99763,7 ... source=sfd
oszczedzajmy cykle procesora

Awatar użytkownika
sgorn
Pasjonat
Pasjonat
Posty: 1208
Rejestracja: 25 paź 2008, 17:29

Nieprzeczytany post autor: sgorn »

witam, sluchajcie mam problem. Nie znam sie na programowaniu ale w oparciu o taka stronke stworzylem sobie jakis prosty EA:

http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/

tylko ze tu nie moge zaprogramować risk ( % kapitału jaki chce na trejd) i dac stop lossa pow/ponizej lokalnego max/min.
czy ma ktos jakis pomysł jaki fragment kodu powinienem wkleic i gdzie?
generalnie chcialbym zeby po wejsciu w trejd EA ustawial stopa pow.poniz lokalnego extremum w zgodzie z % jaki chce zaiwestowac.
dziekuje za pomoc
Wicks reject areas and bodies explore them-MightyOne
Nie ważne czy miałeś rację czy nie,ważne jak dużo zarobiłeś posiadając rację i jak mało straciłeś, myląc się.

Awatar użytkownika
BOCZEK
Maniak
Maniak
Posty: 3602
Rejestracja: 26 paź 2010, 14:08

Nieprzeczytany post autor: BOCZEK »

ze tzn.

wskaźnik potrafię sobie wrzucić nowy do MT4,
ale ze strategi korzystać nie potrafię, nic nie kumam jeśli chodzi o ich testowanie ustawiania itp.


fajni było gdyby ktoś może nakierował mnie na dobra strategię gdzie ejst opisane krok po korku co robić żeby to chodziło.

a najbardziej mi chodzi o kroczącego SLa....

i już wam więcej tyłka zawracał nie będę...

:wink:

ODPOWIEDZ