Napisałem sobie taki skrypt który oblicza wartość pipsa i wartość wymaganego depo do otwarcia danej wielkości pozycji. Tylko mam taki problem bo nie wiem jak go przerobić aby wyliczał wartość depo w walucie depozytu a nie jak jest w walucie bazowej. Do obliczenia wartości pipsa w PLN użyłem wartości TICKVALUE, no a w obliczaniu depo nie wiem jak to zrobić. Macie jakieś pomysły.
Kod: Zaznacz cały
void OnStart()
{
double lot = 0.01;
string waluta_konta = AccountCurrency();
string walutaBazowa = SymbolInfoString(Symbol(), SYMBOL_CURRENCY_BASE);
Alert("");
Alert("Wartość pipsa dla ", lot ," lota: ",warPipsaPLN(lot)," ",waluta_konta);
Alert("Wartość depozytu aby otworzyć pozycję ", lot ," lota: ",wymaganyDepozyt(0.01)," ",walutaBazowa);
}
//------FUNKCJA----------------------------------------
double wymaganyDepozyt(double lot) //depo wyrażony w walucie bazowej
{
double depo = (100000*lot)/dzwignia_20_30();
return DoubleToStr(depo,2);
}
//------KONIEC-----------------------------------------
//------FUNKCJA----------------------------------------
int dzwignia_20_30() //dzwignia w zależności od symbolu
{
if(Symbol()=="EURUSD" || Symbol()=="GBPUSD" || Symbol()=="USDJPY" || Symbol()=="USDCHF" || Symbol()=="USDCAD" ||
Symbol()=="CADJPY" || Symbol()=="EURCAD" || Symbol()=="EURGBP" || Symbol()=="EURJPY" || Symbol()=="GBPCAD" ||
Symbol()=="GBPJPY" || Symbol()=="CADCHF" || Symbol()=="EURCHF" || Symbol()=="GBPCHF" || Symbol()=="CHFJPY")
{
return 30;
}
else
{
return 20;
}
}
//------KONIEC-----------------------------------------
//------FUNKCJA----------------------------------------
double warPipsaPLN(double lot) //wartość pipsa wyrażona w walucie depozytu
{
double tick = MarketInfo(Symbol(),MODE_TICKVALUE);
double warP = 0.0001*100000*lot*tick;
return DoubleToStr(warP,2);
}
//------KONIEC-----------------------------------------