Problem z definowaniem zmiennych jako SL lub TP

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
enjoy_xx
Stały bywalec
Stały bywalec
Posty: 37
Rejestracja: 23 maja 2010, 21:31

Problem z definowaniem zmiennych jako SL lub TP

Nieprzeczytany post autor: enjoy_xx »

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.
Obrazek

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

zera powinny być obcięte bo powinny być to zmienne liczbowe DOUBLE a nie tekstowe STRING
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
enjoy_xx
Stały bywalec
Stały bywalec
Posty: 37
Rejestracja: 23 maja 2010, 21:31

Nieprzeczytany post autor: enjoy_xx »

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:

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);
}
I nie działa. A jak zrobię tak:

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);
}
to dział. Rożnica polega na tym że w tym przypadku poziom SL i TP nie kończą się zerem
Obrazek

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

Nieprzeczytany post autor: personov »

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 :

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.

ODPOWIEDZ