Привет, коллеги.
Посоветуйте пожалуйста решения для двух следующих задач. Скорее всего, они уже реализованы во многих формах, просто я не нахожу.
1) Индикатор или скрипт, который поможет измерить расстояние от точки до точки в $, а не только в пунктах.
2) Скрипт или индикатор, который выводит всю информацию по инструменту: размер и стоимость тика, залог за 1 лот, время торгов, и т.п.
Задачи довольно обыденные, поэтому скорее всего, все это уже было:) Заранее спасибо всем откликнувшимся.
Расчет стоимости пункта для валютных пар. Убедитесь лично в Вашем терминале, что он верен, в интернете по сравнению с этой простой формулой встречаются ошибки или излишняя запутанность. Я проверял для 26 ДЦ в мае 2016, для всех совпало. Но бывало и иначе, например, в 2007 ForexClub в терминале IDS давал одинаковую стоимость пункта для всех пар. Также как и залог, и стандартный лот.
В терминах MQL4 TikBase = LotSiz * TikCot * Курс валюты котировки к USD. То есть на GBPUSD умножаем, а на USDJPY делим. Валюта котировки - вторая в имени пары, для CHFDJPY это JPY.
LotSiz = MarketInfo(T,MODE_LOTSIZE) размер стандартного лота
TikBase = MarketInfo(T,MODE_TICKVALUE) стоимость пункта в долларах
TikCot = MarketInfo(T,MODE_TICKSIZE) шаг котирования (пункт)
В терминах MQL5
LotSiz = SymbolInfoDouble(T,SYMBOL_TRADE_CONTRACT_SIZE)
TikBase = SymbolInfoDouble(T,SYMBOL_TRADE_TICK_VALUE)
TikCot = SymbolInfoDouble(T,SYMBOL_TRADE_TICK_SIZE)
Что касается "всей информации", возможно, Вам пригодятся вот эти строки MQL4. Строка S готовится для записи в файл с расширением .csv, "родной" для Microsoft Excel. Пишется она одной командой
FileWriteString(fi, S, StringLen (S));
Функция KursS служит просто удобочитаемости, убирает в числах лишние нули.
// Переводит в строку курс string KursS(double Ku) { int k, i; string S; // 8 дробных цифр для составного курса открытия позиции в MT5 S=DoubleToString(NormalizeDouble(Ku,8),8); // Уберем концевые нули i=StringLen(S)-1; if (StringSubstr(S,i,1)!="0") return(S); // Их нет for (k=i-1;k>0;k--) if (StringSubstr(S,k,1)!="0") {S=StringSubstr(S,0,k+1); break;} i=StringLen(S)-1; // Уберем концевую точку if (StringSubstr(S,i,1)==".") S=StringSubstr(S,0,i); return (S); } // KursS
S = StringConcatenate(";=MARKET;NTikers=",Nsy+1,";Time=",TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS),";\n"); S = StringConcatenate(S,";AcNum=",AccountNumber(),";Balance=",MoneyS(AccountBalance()),";Valut=",AccountCurrency(), ";Credit=",MoneyS(AccountCredit()),";Equity=",MoneyS(AccountEquity()),";Zalog=",MoneyS(AccountMargin()), ";Free=",MoneyS(AccountFreeMargin()),";PL=",MoneyS(AccountProfit()), ";Lever=",AccountLeverage(),";StopOut=",AccountStopoutLevel(),";Server=",AccountServer(), ";Terminal=",TerminalPath(),";Broker=",AccountCompany(),";\n"); S = StringConcatenate(S,";Tiker;Trading;LotSiz;MinLot;MaxLot;LotStep;Point;Digs;Spread;SwapL;SwapS;LastTime;", "StopLev;Freez;TikBase;TikCot;SwapType;PLCalc;MarCalc;MarInit;MarMaint;MarHed;MarReq\n"); for (k=0;k<=Nsy;k++) { Цикл по имеющимся в массиве Sy именам валютных пар T = Sy[k]; // S = StringConcatenate(S,";",T,";",MarketInfo(T,MODE_TRADEALLOWED),";",KursS(MarketInfo(T,MODE_LOTSIZE)), ";",KursS(MarketInfo(T,MODE_MINLOT)),";",KursS(MarketInfo(T,MODE_MAXLOT)),";",KursS(MarketInfo(T,MODE_LOTSTEP)), ";",KursS(MarketInfo(T,MODE_POINT)),";",MarketInfo(T,MODE_DIGITS),";",KursS(MarketInfo(T,MODE_SPREAD)), ";",KursS(MarketInfo(T,MODE_SWAPLONG)),";",KursS(MarketInfo(T,MODE_SWAPSHORT)),";",MarketInfo(T,MODE_TIME), ";",KursS(MarketInfo(T,MODE_STOPLEVEL)),";",KursS(MarketInfo(T,MODE_FREEZELEVEL)),";",KursS(MarketInfo(T,MODE_TICKVALUE)), ";",KursS(MarketInfo(T,MODE_TICKSIZE)),";",MarketInfo(T,MODE_SWAPTYPE),";",MarketInfo(T,MODE_PROFITCALCMODE), ";",MarketInfo(T,MODE_MARGINCALCMODE),";",KursS(MarketInfo(T,MODE_MARGININIT)),";",KursS(MarketInfo(T,MODE_MARGINMAINTENANCE)), ";",KursS(MarketInfo(T,MODE_MARGINHEDGED)),";",KursS(MarketInfo(T,MODE_MARGINREQUIRED)),";\n");
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привет, коллеги.
Посоветуйте пожалуйста решения для двух следующих задач. Скорее всего, они уже реализованы во многих формах, просто я не нахожу.
1) Индикатор или скрипт, который поможет измерить расстояние от точки до точки в $, а не только в пунктах.
2) Скрипт или индикатор, который выводит всю информацию по инструменту: размер и стоимость тика, залог за 1 лот, время торгов, и т.п.
Задачи довольно обыденные, поэтому скорее всего, все это уже было:) Заранее спасибо всем откликнувшимся.