Funkcja - zamykanie zlecenia na koniec swiecy
Funkcja - zamykanie zlecenia na koniec swiecy
pomózcie jak to zapisac
- borysewicz
- Stały bywalec
- Posty: 75
- Rejestracja: 01 gru 2008, 21:17
Teraz nie pamiętam, ale to chyba było to:
pokombinuj 
Kod: Zaznacz cały
bool isNewBar() {
static int prevTime;
bool newBar=false;
if(Time[0]!=prevTime) {
newBar=true;
prevTime=Time[0];
}
return(newBar);
}

Można dużo prościej, za pomocą jednego polecenia. Zdarzenie generuje się w momencie pierwszego ticku nowej świecy kiedy Volume[0] = 1, a zatem:
Było tutaj: http://www.forex.nawigator.biz/dyskusje ... p?p=172194
Kod: Zaznacz cały
if (Volume[0] = 1) {
// tutaj instrukcje które chcemy aby wykonały się tylko na początku świecy
}

CześćAsia pisze:to chyba to
a możesz zapodać jeszcze
komende zamknij wszystkie zlecenia o magic jakims tam
Sprawdź czy działa poprawnie
Kod: Zaznacz cały
void CloseAll(double magicnr)
{
for (int cnt = OrdersTotal()-1 ; cnt >= 0; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol())
{
if (OrderMagicNumber()==magicnr )
OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);
}
}
}
pozdrawiam
- borysewicz
- Stały bywalec
- Posty: 75
- Rejestracja: 01 gru 2008, 21:17
Przeanalizuj to może pomoże.
Kod: Zaznacz cały
bool isNewBar() {
static int prevTime;
bool newBar=false;
if(Time[0]!=prevTime) {
newBar=true;
prevTime=Time[0];
}
return(newBar);
}
// ------------------------------------------------------------close sell1
for(int iS2=0;iS2<OrdersTotal();iS2++) {
if(OrderSelect(iS2,SELECT_BY_POS)) {
if(OrderMagicNumber()!=magicSell2) {
continue;
} //-BSELL2-
if(OrderType()==OP_SELL ){
if (isNewBar()){
//OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,White); //buy zamykam na BID sell na ASK
Print ("------------Close---------------");
}
} }
}