Witam, potrzebuje pomocy w rozwiązaniu następującego problemu.
Moja strategia wymaga aby zlecenia były otwierane przy różnych wartościach ceny. Program sam oblicza poziomy SL i TP. Wszystko działa ładnie pięknie dopóki nie przydarzy sie sytuacja że poziomem SL lub TP jest cena zawierająca równą dziesiątkę lub setkę (np. 1.2630, 1.2650, 1.2600, 1.2700) bo wtedy z ceny obcinane są zera i program widzi te poziomy jako 1.263, 1.265, 1.26, 1.27 i nie chcę otworzyć pozycji z taką wartością SL lub TP.
Próbowałem użyć SL=NormalizeDouble(SL, 4); ale nic to nie daje, dalej nie działa a jak zrobię sobie podgląd w strategii Print(SL); to widzę właśnie że dalej te zera są obcięte.
Problem z definowaniem zmiennych jako SL lub TP
Mam zadeklarowane je jako DOUBLE.
extern double SL;
Tym printem tylko sobie podglądam
Dodano po 11 minutach:
Mniej więcej tak to wygląda:
I nie działa. A jak zrobię tak:
to dział. Rożnica polega na tym że w tym przypadku poziom SL i TP nie kończą się zerem
extern double SL;
Tym printem tylko sobie podglądam
Dodano po 11 minutach:
Mniej więcej tak to wygląda:
Kod: Zaznacz cały
extern double SL;
extern double TP;
extern double lot=0.1;
if (Bid == 1.2650)
{
SL= (Bid - 0.0020);
TP = (Bid + 0.0020);
OrderSend(Symbol(), OP_BUY, lot , Bid, 3, SL, TP, 0);
}
Kod: Zaznacz cały
extern double SL;
extern double TP;
extern double lot=0.1;
if (Bid == 1.2650)
{
SL= (Bid - 0.0019);
TP = (Bid + 0.0019);
OrderSend(Symbol(), OP_BUY, lot , Bid, 3, SL, TP, 0);
}
OP_BUY otwieramy po cenie Ask i SL i TP też powinny być definiowane jako Ask+... lub Ask-....
Może w tym tkwi problem ?
Dodano po 51 minutach:
Na przykład tak :
Może w tym tkwi problem ?
Dodano po 51 minutach:
Na przykład tak :
Kod: Zaznacz cały
extern double SL;
extern double TP;
extern double lot=0.1;
if (Bid == 1.2650)
{
SL= (Ask - 0.0020);
TP = (Ask + 0.0020);
OrderSend(Symbol(), OP_BUY, lot , Ask, 3, SL, TP, "",0,Green);
}
Solą życia jest kasa.