Tig3r pisze:2. nie wiem o co pytasz - to jest funkcja którą wywołujesz i otrzymujesz wynik i tyle
Return jako taki zamiennik "Buy" i "Sell", ale to juz neiważne, to chyba zbyt skomplikowane byłoby..jesli w ogóle wykonalne
Mam kilka błędów:
" 'Buy'-variable not defined "
" 'Sell' "-variable not defined"
" 'kierunek'-variable not defined "
" 'IleOtwartychPozycji' -expression on global scope not allowed"
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
Aj... błędy już poprawiłem, przekopałem forum i znalazłem kilka już istniejacych tematów na ten temat, od razu przepraszam Moderatorów za bałagan jaki robie.
Otóż kilka chwil wcześniej nie zdawałem sobei sprawy że wyzej wymieniona funkcja musi znajdować się poza "int start()", teraz wszystko ok, MAGIC (tak jak pisałeś Tig3r) wykasowałem i zamieniłem OrderTotal na nazwe funkcji i wszystko gra, oczywiscie bez "Magic" program nei ebdzie rozponawał która jest jego pozycja a którą ja otworzyłem sam, ale to juz nei ejst dla mnei istotne.
Mniej więcej wygląda to tak:
Kod: Zaznacz cały
//----
int IleOtwartychPozycji(int kierunek)
{
int Sell, Buy;
for (int i = 0; i < OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol())
{
if (OrderType() == OP_BUY) Buy++;
if (OrderType() == OP_SELL) Sell++;
}
}
}
switch(kierunek)
{
case -1: return(Sell);
case 0: return(Buy+Sell);
case 1: return(Buy);
}
}
//----
int start() // Wejscie/funkcja start
{
//----
//----
//----
double A = iStochastic(Symbol(),PERIOD_H1,5,3,3,MODE_SMA,0,MODE_MAIN, 1); //KPeriod
double B = iStochastic(Symbol(),PERIOD_H1,5,3,3,MODE_SMA,0,MODE_SIGNAL,1); //DPeriod
//----
double X = iStochastic(Symbol(),PERIOD_H1,5,3,3,MODE_SMA,0,MODE_MAIN, 0); //KPeriod
double Y = iStochastic(Symbol(),PERIOD_H1,5,3,3,MODE_SMA,0,MODE_SIGNAL,0); //DPeriod
//----
//----
//----
//----
if( IleOtwartychPozycji(0) < 4 ){ // Ograniczenie do 3 otwartych pozycji jednoczesnie
if (B < A && Y > X) //sell
{
OrderSend (Symbol(),OP_BUY,Lot,Bid,3,Ask+SL*Point,Ask-TP*Point);
}
RefreshRates(); //Odświeżenie danych
if (B > A && Y < X) //buy
{
OrderSend (Symbol(),OP_BUY,Lot,Ask,3,Bid-SL*Point,Bid+TP*Point);
Przystępuje do testów:)
Dodano po 1 godzinach 36 minutach:
Tig3r pisze: [...] manualnym tradingiem (w OrderSend tam podajesz magic). Jeśli nie używasz to możesz usunąć to "&& OrderMagicNumber() == MAGICMA"
Jak to sie podaje w "OrderSend" ? NIe rozumiem...
----------------------------------------------------------------------------------------------------------
Chciałbym jeszcze wprowadzic jeden pomysł, mianowicie przekopując sie pzrez forum natrafiłem na ciekawy temat o funkcji wysyłania e-mail'a.
komenda:
Chciałbym aby moje EA wysyłało E-mail na moją skrzynke (domyślną w ustawieniach platformy) codizennie o godzinie 22.00 z informacją o stanie: Balance, Equity i Margin Level, tak abym mógł z dowolnego miejsca na świecie śledzic poczynania mojego robota gdy cięzko pracuje gdzies np. na innym komputerze.

To troche dla mnei skomplikowane, może ktoś wie jak to zrobic?