Termos de Referência
стратегий в одном терминале может быть много
нужен ММ для (баланс - сумма всех рисков)
//Maximum amount of money to risk
double moneyToRisk = NormalizeDouble( (AccountBalance() - Total_Current_Risk() )* RiskInPercent / 100, 7);
Total_Current_Risk() {
calculates all potential losses of all opened and all pending orders
+
all swaps
+
all commissions
return (Total_Current_Amount_At_Risk)
}
double sqMMRiskFixedBalancePct(string symbol, int orderType, double price, double sl, double RiskInPercent, int decimals, double LotsIfNoMM, double MaximumLots, double multiplier, double sizeStep) {
Verbose("Computing Money Management for order - Risk fixed % of account balance");
if(UseMoneyManagement == false) {
Verbose("Use Money Management = false, MM not used");
return (mmLotsIfNoMM);
}
symbol = correctSymbol(symbol);
sl = NormalizeDouble(sl, (int) MarketInfo(symbol, MODE_DIGITS));
double openPrice = price > 0 ? price : (orderType == OP_BUY ? sqGetAsk(symbol) : sqGetBid(symbol));
double LotSize=0;
if(RiskInPercent < 0 ) {
Verbose("Computing Money Management - Incorrect RiskInPercent size, it must be above 0");
return(0);
}
double PointValue = MarketInfo(symbol, MODE_TICKVALUE) / MarketInfo(symbol, MODE_TICKSIZE);
double Smallest_Lot = MarketInfo(symbol, MODE_MINLOT);
double Largest_Lot = MarketInfo(symbol, MODE_MAXLOT);
double LotStep = MarketInfo(symbol, MODE_LOTSTEP);
//Maximum amount of money to risk
double moneyToRisk = NormalizeDouble(AccountBalance() * RiskInPercent / 100, 7);
//Maximum drawdown of this order if we buy 1 lot
double oneLotSLDrawdown = NormalizeDouble(PointValue * MathAbs(openPrice - sl), 7);
if(oneLotSLDrawdown > 0) {
LotSize = moneyToRisk / oneLotSLDrawdown;
}
else {
LotSize = 0;
}
LotSize = LotSize * multiplier;
// round computed trade size
LotSize = roundDown(LotSize, sizeStep, decimals);
//--- MAXLOT and MINLOT management
Verbose("Computing Money Management - Smallest_Lot: ", DoubleToStr(Smallest_Lot), ", Largest_Lot: ", DoubleToStr(Largest_Lot),", Computed LotSize: ", DoubleToStr(LotSize));
Verbose("Max money to risk: ", DoubleToStr(moneyToRisk), ", SL:", DoubleToStr(sl), ", One lot drawdown: ", DoubleToStr(oneLotSLDrawdown), ", Point value: ", DoubleToStr(PointValue));
if(LotSize <= 0) {
Verbose("Calculated LotSize is <= 0. Using LotsIfNoMM value: ", DoubleToStr(LotsIfNoMM), ")");
LotSize = LotsIfNoMM;
}
if(LotSize > MaximumLots) {
Verbose("LotSize is too big. LotSize set to maximal allowed value (MaximumLots): ", DoubleToStr(MaximumLots));
LotSize = MaximumLots;
}
//--------------------------------------------
if (LotSize < Smallest_Lot) {
Verbose("Calculated LotSize is too small. Minimal allowed lot size from the broker is: ", DoubleToStr(Smallest_Lot), ". Please, increase your risk or set fixed LotSize.");
LotSize = 0;
}
else if (LotSize > Largest_Lot) {
Verbose("LotSize is too big. LotSize set to maximal allowed market value: ", DoubleToStr(Largest_Lot));
LotSize = Largest_Lot;
}
return (LotSize);
}
Respondido
1
Classificação
Projetos
102
23%
Arbitragem
12
25%
/
17%
Expirado
13
13%
Livre
2
Classificação
Projetos
228
19%
Arbitragem
20
40%
/
20%
Expirado
0
Ocupado
3
Classificação
Projetos
4
0%
Arbitragem
4
25%
/
75%
Expirado
1
25%
Livre
4
Classificação
Projetos
472
40%
Arbitragem
102
40%
/
24%
Expirado
78
17%
Ocupado
Publicou: 2 códigos
Pedidos semelhantes
Добавить alert Flexible Fractal mql5
30 - 50 USD
Кто может добавить alert при пробитии последнего фрактала. из 3 баров. Flexible Fractal c notification с ценой и валютной парой / и чтоб звучало 1 раз. // Как и в стандартном индикаторе текущий бар сравнивается с барами стоящими справа на графике строго - текущий бар должен быть выше (для верхнего фрактала) или ниже (для нижнего фрактала), если же он равен - тогда фрактал не рисуется. А вот сравнение текущего бара с
1. Загальна логіка Треба створити ЕА для MetaTrader 5 на основі індикатора Zig Zag (параметри індикатора стандартні: Depth, Deviation, Backstep) та рівнів Фібоначчі. Детально логіка входу описана в додатку до ТЗ. 2. Відкриття сету ордерів ЕА відкриває сет відкладених ордерів (кількість ордерів від 1 до 5) Для кожного ордеру задається - рівень входу (значення рівня Фібоначчі) - рівень SL
Informações sobre o projeto
Orçamento
30 - 50 USD