Скачать MetaTrader 5

Не могу рассчитать размер залога для двух пар. Может кто поможет.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114269
Forex Trader  
По всем парам рассчет сделал, кроме этих двух. Помогите плиз формулкой.

CADJPY
CHFJPY
Forex Trader
114269
Forex Trader  
Forex Trader
114269
Forex Trader  
Залог за 1 лот = 100000/leverage по курсу для
USDCAD
USDCHF
Для покупки использовать Ask. Для продажи использовать Bid.

На форуме альпари есть скрипт Инфо в исходнике. Там есть расчет стоимости залога за 1 лот в валюте депозита для любой пары.

Скрипт Инфо.mq4 http://forum.alpari-idc.ru/attachment.php?attachmentid=24380
Forex Trader
114269
Forex Trader  
Я решил так:

M_AUDJPY=MarketInfo("AUDJPY",MODE_LOTSIZE)/Leverage*((MarketInfo("AUDUSD",MODE_ASK)+MarketInfo("AUDUSD",MODE_BID))/2);
M_AUDUSD=MarketInfo("AUDUSD",MODE_LOTSIZE)/Leverage*((MarketInfo("AUDUSD",MODE_ASK)+MarketInfo("AUDUSD",MODE_BID))/2);
M_CADJPY=MarketInfo("CADJPY",MODE_LOTSIZE)/Leverage*((MarketInfo("USDCAD",1/MODE_ASK)+MarketInfo("USDCAD",1/MODE_BID))/2);
M_CHFJPY=MarketInfo("CHFJPY",MODE_LOTSIZE)/Leverage*((MarketInfo("USDCHF",1/MODE_ASK)+MarketInfo("USDCHF",1/MODE_BID))/2);
M_EURAUD=MarketInfo("EURAUD",MODE_LOTSIZE)/Leverage*((MarketInfo("EURUSD",MODE_ASK)+MarketInfo("EURUSD",MODE_BID))/2);
M_EURCAD=MarketInfo("EURCAD",MODE_LOTSIZE)/Leverage*((MarketInfo("EURUSD",MODE_ASK)+MarketInfo("EURUSD",MODE_BID))/2);
M_EURCHF=MarketInfo("EURCHF",MODE_LOTSIZE)/Leverage*((MarketInfo("EURUSD",MODE_ASK)+MarketInfo("EURUSD",MODE_BID))/2);
M_EURGBP=MarketInfo("EURGBP",MODE_LOTSIZE)/Leverage*((MarketInfo("EURUSD",MODE_ASK)+MarketInfo("EURUSD",MODE_BID))/2);
M_EURUSD=MarketInfo("EURUSD",MODE_LOTSIZE)/Leverage*((MarketInfo("EURUSD",MODE_ASK)+MarketInfo("EURUSD",MODE_BID))/2);
M_EURJPY=MarketInfo("EURJPY",MODE_LOTSIZE)/Leverage*((MarketInfo("EURUSD",MODE_ASK)+MarketInfo("EURUSD",MODE_BID))/2);
M_GBPCHF=MarketInfo("GBPCHF",MODE_LOTSIZE)/Leverage*((MarketInfo("GBPUSD",MODE_ASK)+MarketInfo("GBPUSD",MODE_BID))/2);
M_GBPJPY=MarketInfo("GBPJPY",MODE_LOTSIZE)/Leverage*((MarketInfo("GBPUSD",MODE_ASK)+MarketInfo("GBPUSD",MODE_BID))/2);
M_GBPUSD=MarketInfo("GBPUSD",MODE_LOTSIZE)/Leverage*((MarketInfo("GBPUSD",MODE_ASK)+MarketInfo("GBPUSD",MODE_BID))/2);
M_USDCAD=MarketInfo("USDCAD",MODE_LOTSIZE)/Leverage;
M_USDCHF=MarketInfo("USDCHF",MODE_LOTSIZE)/Leverage;
M_USDJPY=MarketInfo("USDJPY",MODE_LOTSIZE)/Leverage;
Forex Trader
114269
Forex Trader  
Средняя цена может не дать нужной точности. Скажем, если захочешь открыть максимально доступное число лотов. Нужно для покупки использовать курс MarketInfo(base+сurrency,MODE_ASK), для продажи - курс MarketInfo (base+сurrency,MODE_BID). А в остальном правильных ход мыслей.

Здесь
base - базовая валюта пары (первые три буквы),
сurrency - валюта счета, обычно USD.

Если base=сurrency, то использовать курс=1. Для USDCHF, USDJPY, USDCAD, и т.д.
Forex Trader
114269
Forex Trader  
Спасибо за поддержку. Но сверх точность до центов мне не нужна. И громоздить код не хочется.
Forex Trader
114269
Forex Trader  
Точность не бывает сверх. Точность бывает X знаков. Программирование не оперирует примерными понятиями. Оно оперирует истинными и ложными понятиями. - "Седня ты прогрешность дал, а завтра родину продал" (© Л.П.Берия).
Forex Trader
114269
Forex Trader  
Точность не бывает сверх. Точность бывает X знаков. Программирование не оперирует примерными понятиями. Оно оперирует истинными и ложными понятиями. - "Седня ты примерно определил курс валюты, завтра родину продал" (© Л.П.Берия).



Потешил. Спасибо.
Для моей задачи достаточная точность.
Forex Trader
114269
Forex Trader  
Только скорее будет
M_CHFJPY=Lot*MarketInfo("CHFJPY",MODE_LOTSIZE)/AccountLeverage()*2/(MarketInfo("USDCHF",MODE_ASK)+MarketInfo("USDCHF",MODE_BID));
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий