Старт распродаж! Черная пятница - 50%



Основные понятия [17]
Торговые системы,тактики [67]
Форекс начинающим [16]
Разное [37]

Секреты моего Автолота

Добавить в социальные закладки:

Секреты моего Автолота
 
В рамках данной статьи, я попытаюсь рассказать Вам о своих методах расчета лота от % (РИСК) Свободной маржи, на разных валютных парах и разных типах депозита
 
 
 
 
 
 
 
 
 
И так начнем.:
 
   Для начала осветим несколько понятий, используемых в данном расчете:
 
   Free margin (свободная маржа) (AccountFreeMargin())– денежные средства, которые не используются в открытых позициях в качестве залога. Свободная маржа рассчитывается по формуле: свободная маржа = текущее состояние депозита – необходимая маржа в открытых позициях. Данный показатель используется для определения количества сделок, которые могут быть открыты на текущий момент.
 
   
   Ask – это цена, по которой вы покупаете определенное количество финансового инструмента у банка. А банк, соответственно по этой цене вам его продает. Торгуя на рынке Форекс, Вы будете встречать данный тип цены повсюду: от торгового терминала, до биржевых сводок и аналитических статей по финансовым рынкам. 
 
   Bid – это цена, по которой вы продаете определенное количество финансового инструмента своему банку. А банк, соответственно, по этой цене у Вас его покупает. Торгуя на рынке Форекс, Вы будете встречать данный тип цены везде, где речь будет идти о международном валютном рынке Форекс: от торгового терминала и курсов валют на сайте Вашего брокера, до биржевых сводок и аналитических статей по международным финансовым рынкам. 
 
   Кредитное плечо – отношение суммы залога к заемной сумме. При начальном выборе кредитного плеча выбирается размер кредитного плеча, который обозначает ту сумму, во сколько раз будет увеличен депозит Клиента для осуществления им торговых операций на валютном рынке. Клиент может выбрать размер кредитного плеча от 1:1 до 1:500, то есть Клиент может торговать только на свои средства, а может запросить увеличение своего депозита до 500 раз, чтобы с этой суммой выходить на рынок. Кредитное плечо, как отношение суммы, с которой трейдер выходит на рынок к размеру его депозита, играет важную роль в процессе торговли, так как именно кредитное плечо позволяет трейдеру существенно увеличить свой капитал.
 
   Валютная пара – это обозначение двух валют, образующих вместе курс валют. Валютная пара служит в качестве объекта для осуществления финансовых сделок. Валютная пара обозначается в виде последовательно идущих друг за другом обозначений двух валют, составляющих эту валютную пару, которые записываются либо слитно, либо через наклонную черту в следующем виде: базовая валюта/валюта котировки. Базовой валютой обозначается первая валюта, которая продается и покупается, а котируемая валюта служит для выражения цены на базовую валюту. Валютная пара – это базовое понятие валютного рынка, которое встречается повсюду, как только речь заходит о данном рынке: от рыночной сводки до торгового терминала.
 
   Размер лота – объем базовой валюты, товара или количество акций, указанных в спецификации контракта. Размер лота зависит от количества валюты, указанной в контракте и является единицей измерения в определении размера торгового контракта. Лот имеет определенный размер, с помощью которого осуществляется определение количества валюты, по которой совершаются финансовые операции на рынке Форекс. Чтобы осуществить сделку, Клиент определяет размер совершаемой им сделки, который выражается в количествах лотов. Объем торговой сделки указывает какое количество валюты будет составлять сделку. Лот – это размер контракта, который является фиксированным объемом валюты, используемой в торговых операциях на рынке Форекс.
 
    Курс одной валюты по отношению к другой устанавливается в результате взаимодействия спроса и предложения на них в определенный момент времени. Процесс установки валютного курса носит название котировки валют. Котировки могут быть прямыми и обратными.
 
   Под прямой котировкой понимается выражение цены иностранной валюты в единицах национальной. Большинство валютных курсов представляет собой прямую котировку доллара США к валютам различных стран. Например:
USD/RUR - 30, 70 - это значит, что один доллар США оценивается или равен   30, 70 российских рублей;
USD/CHF - 1, 0850 - в этом случае, один доллар США оценивается или равен 1.0850 швейцарских франков.
 
   Обратная котировка - это выражение стоимости национальной валюты в единицах иностранной. Обратную котировку исторически имеют английский фунт стерлингов, евро, австралийский и новозеландский доллары. Например, котировка - EUR/USD - 1,3374 значит, что 1 еврo стоит 1,3374 долларов США, GBP/USD - 1,5970, это значит, что 1 английский фунт стерлингов равен 1.5970 американских долларов и т.д.
 
     Еще существует такое понятие как "кросс курс" - это обменные курсы, в которых доллар не является ни базовой, ни валютой котировки, например EUR/JPY, GBP/CHF, EUR/GBP и другие.
 
   Теперь с технической стороны:
 
NormalizeDouble - Округление числа с плавающей запятой до указанной точности.
 
MODE_LOTSIZE - Размер контракта в базовой валюте инструмента
 
MODE_LOTSTEP - Шаг изменения размера лота 

 

AccountCurrency - Возвращает наименование валюты для текущего счета. 
 
MathFloor  - Функция возвращает числовое значение, представляющее наибольшее целое число, которое меньше или равно x. 
 
Важно: Для того, чтобы все расчеты были верны - активируйте все символы в панели "Обзор рынка" 
 
 
 
   Моя формула расчета выглядит так: 
 
Депозит USD
 
 

Депозит USD  Прямая котировка ()

 Лот= Свободная маржа*Риск*Кредитное плечо/100/Размер контракта

Депозит USD  Обратная котировка()

 Лот= Свободная маржа*Риск*Кредитное плечо/Ask/100/Размер контракта

 

Депозит USD  Кросс курс:()

       1 вариант, если есть текущая цена базовой валюты+USD (например если расчетная пара AUDCAD то текущая цена базовой валюты = AUDUSD)

          Лот= Свободная маржа*Риск*Кредитное плечо/(текущая цена базовой валюты+USD)/100/Размер контракта

 

       2 вариант, если нет текущей цены базовой валюты+USD (например CADJPY)

          Лот= Свободная маржа*Риск*Кредитное плечо/100/Размер контракта

Депозит EUR

 

Депозит EUR Прямая котировка

 Лот= Свободная маржа*Риск*Кредитное плечо/100/Размер контракта

Депозит EUR Кросс курс:

       текущая цена EUR + валюта котирования (например если расчетная пара AUDCAD то текущая цена  валюта котирования  = EURAUD)

          Лот= Свободная маржа*Риск*Кредитное плечо/( текущая цена EUR валюта котирования)/100/Размер контракта

 

 

Депозит RUR

 

Депозит RUR Обратная котировка(например USDRUR)

 Лот= MathFloor  (Свободная маржа*Риск*Кредитное плечо/100/Текущая цена/Размер контракта/Шаг лота/20)*Шаг лота

Депозит RUR Кросс(например EURGBP)

 

  текущая цена =MarketInfo(StringSubstr(Symbol(),0,3)+"RUR"+StringSubstr(Symbol(),6),MODE_BID);     

if(pr!=0)Lot2=MathFloor( Свободная маржа * Риск * Кредитное плечо / текущая цена /100/ Размер контракт / Шаг лота )* Шаг лота ; 

else  Лот =MathFloor( Свободная маржа * Риск * Кредитное плечо /100/ Размер контракт / Шаг лота )* Шаг лота ; 

 

Порядок данных функций получились в ходе расчетов параметров на разных депозитах. Если ВЫ имеете свое мнение по поводу данных расчетов, пожалуйста, предлагайте свои функции автолота при заказе на программирование

 

 

Вам необходим код? 

Функция расчета автолота:

Внешние переменные:

extern string autolot_="Настройки автолота";
extern double Lots=0.1;                   // Фиксирвоанный лот 
extern bool DynamicLot=false;             // Динамический лот
extern double LotBalancePcnt=20;          // % от депозита
extern double MaxLot=999;                 // Максимальный лот при расчете

Функция:

 

double GetSizeLot(double ll=1) //Функция возвращает значение лотов, 
 {
 string Autor=" Автор функции для шаблона : www.expforex.com";
 string lotcalc;
 double pr;
 string Valdepo=AccountCurrency();
//если включен ММ то значение лотов, 
 double Lot2,MinLots,MaxLots;
 int lotdig;
 if(MarketInfo(Symbol(),MODE_LOTSTEP)==0.01)lotdig=2; else lotdig=1;
 if(Valdepo=="USD")
 {
 if(StringSubstr(Symbol(),0,3)=="USD")Lot2=NormalizeDouble(AccountFreeMargin()*LotBalancePcnt*
AccountLeverage()/100/MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 else if(StringSubstr(Symbol(),3,3)=="USD")Lot2=NormalizeDouble(AccountFreeMargin()*LotBalancePcnt*
AccountLeverage()/Ask/100/MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 else
 {
 pr=MarketInfo(StringSubstr(Symbol(),0,3)+"USD",MODE_ASK);
 if(pr!=0)Lot2=NormalizeDouble(AccountFreeMargin()*LotBalancePcnt*AccountLeverage()/pr/100/
MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 else Lot2=NormalizeDouble(AccountFreeMargin()*LotBalancePcnt*AccountLeverage()/100/
MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 }
 }
 if(Valdepo=="EUR")
 {
 if(StringSubstr(Symbol(),0,3)=="EUR")Lot2=NormalizeDouble(AccountFreeMargin()*LotBalancePcnt*
AccountLeverage()/100/MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 else
 {
 pr=MarketInfo("EUR"+StringSubstr(Symbol(),0,3),MODE_BID);
 if(pr!=0)Lot2=NormalizeDouble(AccountFreeMargin()*LotBalancePcnt*AccountLeverage()*pr/100/
MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 else Lot2=NormalizeDouble(AccountFreeMargin()*LotBalancePcnt*AccountLeverage()/100/
MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 }
 }

 if(Valdepo=="RUR" || Valdepo=="RUB")
 {
 if(StringSubstr(Symbol(),0,3)=="USD")Lot2=NormalizeDouble(AccountFreeMargin()/40*
LotBalancePcnt*AccountLeverage()/100/MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 else if(StringSubstr(Symbol(),3,3)=="USD")Lot2=NormalizeDouble(AccountFreeMargin()/40*
LotBalancePcnt*AccountLeverage()/Ask/100/MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 else
 {
 pr=MarketInfo(StringSubstr(Symbol(),0,3)+"USD",MODE_ASK);
 if(pr!=0)Lot2=NormalizeDouble(AccountFreeMargin()/40*LotBalancePcnt*AccountLeverage()/pr/100/
MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 else Lot2=NormalizeDouble(AccountFreeMargin()/40*LotBalancePcnt*AccountLeverage()/100/
MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
 }
 }

 MinLots=MarketInfo(Symbol(),MODE_MINLOT);
 MaxLots=MaxLot;
 lotcalc=" Autolot="+Lot2;
 if(!DynamicLot)Lot2=Lots;
 
 if(Lot2 < MinLots) Lot2 = MinLots;
 if(Lot2 > MaxLots) Lot2 = MaxLots;
 lotcalc=lotcalc+" MinLots="+MinLots+" LOT="+NormalizeDouble(Lot2,lotdig);
 Print(lotcalc);
 return(NormalizeDouble(Lot2,lotdig));
 }

 
 

 

Функция расчета автолота по стоплоссу:

StopLosssd= стоплосс в пунктах

 

Внешние переменные:

extern double Lots=0.1;                   // Фиксированный лот 
extern double LotBalancePcnt=20;          // % от депозита если LotBalancePcnt==0 используется лот
 

Функция:

 
double GetSizeLotStopLoss(double StopLosssd=1) //Функция возвращает значение лотов, 
 {
 string Autor=" Автор функции для шаблона : www.expforex.com";
 string Valdepo=AccountCurrency();
//если включен ММ то значение лотов, 
 double MinLots;
 int lotdig;
 if(MarketInfo(Symbol(),MODE_LOTSTEP)==0.01)lotdig=2; else lotdig=1;
 double Free=AccountFreeMargin();
 double LotVal=MarketInfo(Symbol(),MODE_TICKVALUE);//стоимость 1 пункта для 1 лота
 double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
 double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
 double Step=MarketInfo(Symbol(),MODE_LOTSTEP);
 double Lot =MathFloor((Free*lotss/100)/(StopLosssd*LotVal)/Step)*Step;
 MinLots=MarketInfo(Symbol(),MODE_MINLOT);

 if(Lot<MinLots) Lot=MinLots;

 return(NormalizeDouble(Lot,lotdig));
 }

 


Получить бесплатно Секреты моего Автолота

Категория: Торговые системы,тактики | Добавил: expforex (04.09.2012)
Просмотров: 5691 | Комментарии: 1 | Рейтинг: 5.0/22 |
Всего комментариев: 1
   1               expforex        (17.02.2014 16:16)
Код
if(Valdepo=="RUR")
{
if(StringSubstr(Symbol(),0,3)=="USD")Lot2=NormalizeDouble(AccountFreeMargin()/30*LotBalancePcnt*AccountLeverage()/100/MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
else if(StringSubstr(Symbol(),3,3)=="USD")Lot2=NormalizeDouble(AccountFreeMargin()/30*LotBalancePcnt*AccountLeverage()/Ask/100/MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
else
{
pr=MarketInfo(StringSubstr(Symbol(),0,3)+"USD",MODE_ASK);
if(pr!=0)Lot2=NormalizeDouble(AccountFreeMargin()/30*LotBalancePcnt*AccountLeverage()/pr/100/MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
else Lot2=NormalizeDouble(AccountFreeMargin()/30*LotBalancePcnt*AccountLeverage()/100/MarketInfo(Symbol(),MODE_LOTSIZE),lotdig);
}
}

Имя *:
Email:
Код *:



WebMoney Яндекс цитирования.