zamknięcie otwartych pozycji
zamknięcie otwartych pozycji
Mam szybkie pytanie. Czy istnieje jakieś proste polecenie :
"If ( warunki ) zamknij wszystkie otwarte pozycje"
A jeszcze lepiej jak byłoby zamknij otwarte pozycje BUY i oddzielna komenda zamknij wszystkie otwarte pozycje SELL.
Chodzi mi o coś w rodzaju :
if (...warunki...) send(OP_SELL);
if (...warunki...) send(OP_BUY);
tylko dla zamykania.
"If ( warunki ) zamknij wszystkie otwarte pozycje"
A jeszcze lepiej jak byłoby zamknij otwarte pozycje BUY i oddzielna komenda zamknij wszystkie otwarte pozycje SELL.
Chodzi mi o coś w rodzaju :
if (...warunki...) send(OP_SELL);
if (...warunki...) send(OP_BUY);
tylko dla zamykania.
Solą życia jest kasa.
Tak wiem. Czytałem tego posta i nawet próbowałem.
Jednak mój dotychczasowy zasób wiedzy w programowaniu nie pozwala mi zrozumieć dlaczego wyskakuje mi błąd, że wyrażenie "ZamknijAll" nie istnieje.
Rozumiem, że "ZamknijAll" musi być zdefiniowane i pewnie jest zdefiniowane w kodzie trzecim : "void...." .
Ale wpisywałem wszystko tylko może w nieodpowiednim miejscu w całym kodzie EA.
Dlatego zadałem pytanie czy itnieje coś prostszego, jakaś jedna komenda typu (OP_BUY).
Jednak mój dotychczasowy zasób wiedzy w programowaniu nie pozwala mi zrozumieć dlaczego wyskakuje mi błąd, że wyrażenie "ZamknijAll" nie istnieje.
Rozumiem, że "ZamknijAll" musi być zdefiniowane i pewnie jest zdefiniowane w kodzie trzecim : "void...." .
Ale wpisywałem wszystko tylko może w nieodpowiednim miejscu w całym kodzie EA.
Dlatego zadałem pytanie czy itnieje coś prostszego, jakaś jedna komenda typu (OP_BUY).
Solą życia jest kasa.
ZamknijAll to funkcja
Wrzucasz ją na koniec kodu EA
A potem gdziesz wywołujesz w postaci:
lub
Wrzucasz ją na koniec kodu EA
A potem gdziesz wywołujesz w postaci:
Kod: Zaznacz cały
ZamknijAll(parametry,jeśli,są,oddzielamy,przecinkiem);
Kod: Zaznacz cały
ZamknijAll()
Niestety nie. Masz klocki i narzędzia możesz budować z nich.personov pisze:czy itnieje coś prostszego, jakaś jedna komenda typu
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
No i wszystko działa. Udało się.
A podpowiecie mi jak ma wyglądać kod jak chciałbym to podzielić na pozycje BUY i SHORT ?
void ZamknijBuy()
{
int i;
for (i = OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
OrderClose(OrderTicket(), OrderLots(), Bid, 3, Orange);
}
}
//////////////////////////////////////////////////
void ZamknijShort()
{
int i;
for (i = OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
OrderClose(OrderTicket(), OrderLots(), Bid, 3, Orange);
}
}
A podpowiecie mi jak ma wyglądać kod jak chciałbym to podzielić na pozycje BUY i SHORT ?
void ZamknijBuy()
{
int i;
for (i = OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
OrderClose(OrderTicket(), OrderLots(), Bid, 3, Orange);
}
}
//////////////////////////////////////////////////
void ZamknijShort()
{
int i;
for (i = OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
OrderClose(OrderTicket(), OrderLots(), Bid, 3, Orange);
}
}
Solą życia jest kasa.
Musisz dodć warunek:
i
Co do powyższego kodu (zamykania) to trzeba sprawdzać czy zlecenie zostało zamknięte bo można dostać requota albo inną niespodziankę
Kod: Zaznacz cały
if(OrderType()==OP_BUY)
{
// zamknij buy
}
Kod: Zaznacz cały
if(OrderType()==OP_SELL)
{
// zamknij sell
}
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
A jeśli w warunku użycia takiego "ZaknilBuy" będzie if(Cci>250) to reqot ma znaczenie i trzeba ustawiać poziom slippage ?Tig3r pisze:Co do powyższego kodu (zamykania) to trzeba sprawdzać czy zlecenie zostało zamknięte bo można dostać requota albo inną niespodziankę
Przecież jeśli mi broker nie zamknie np. na 250 to zamknie wreszcie na 255 lub 260.
Tig3r, a w której linijce mam wpisać ten warunek
if(OrderType()==OP_BUY)
{
// zamknij buy
}
Bo wyskakują mi jakieś błędy z nawiasami, albo zamyka mi pozycje po 1 pipsie i takie cuda.
Przepraszam za takie prostackie pytania, ale próbuję się czegoś nauczyć poprzez takie kombinowanie w kodzie.
Solą życia jest kasa.
Są też inne błędy zamknięciapersonov pisze:Przecież jeśli mi broker nie zamknie np. na 250 to zamknie wreszcie na 255 lub 260.
Kod: Zaznacz cały
void ZamknijBuy()
{
int i;
for (i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
{
if (OrderType() == OP_BUY)
{
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Aqua);
}
}
}
}
void ZamknijSell()
{
int i;
for (i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
{
if (OrderType() == OP_SELL)
{
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Magenta);
}
}
}
}
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..