Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не меняйте эту часть кода. Эта часть кода проверяет, является ли ваш брокер 4-х или 5-ти значным брокером. Кроме того, вот тест с начальным депозитом $500 (риск 5%, стоп-лосс 20 пунктов, для теста использовалась пара EURUSD), и он работает даже с таким начальным депозитом.
Здравствуйте, Младен.
Вчера спрашивал Вас о кодировке заказа.
Но она слишком сложная.
Мне очень жаль, потому что я хочу простую кодировку.
Вот так:
Баланс счета$500
с риском 5%, открытые лоты = $0.25
лоты=$500*(риск/100)
лоты=$500*(0.05/100)
лоты=$500(0.0005)
лоты= $0.25
Понравилось, что советник автоматически открывает лоты по $0.25.
И количество лотов не смешивается со Stoploss или TProfit.
Надеюсь, вы сможете помочь мне решить эту проблему.
Спасибо большое.
extern double profsize = 10;
extern double Risk =5;
int err;
int ticket;
double stop;
double prof;
int init() { return(0); }
int deinit() { return(0); }
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
double sl = stopsize*Point*MathPow(10,Digits%2);
double tp = profsize*Point*MathPow(10,Digits%2);
stop = (Ask-sl);
prof = (Ask+tp);
ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
Comment(" ");
}
//
//
//
//
//
double getLots(double stopLoss, double risk)
{
RefreshRates();
double pPoint = MarketInfo(Symbol(),MODE_POINT);
double step = MarketInfo(Symbol(),MODE_LOTSTEP);
double minLot = MarketInfo(Symbol(),MODE_MINLOT);
double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double lots = minLot;
if (risk>0 && stopLoss>0)
{
lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint);
}
return(MathMax(MathMin(lots,maxLot),minLot));
}Привет, Младен.
Вчера я спрашивал вас о кодировке заказа.
Но она слишком сложная.
Мне очень жаль, потому что я хочу простую кодировку.
Вот так:
Баланс счета $500
с риском 5%, открытые лоты = $0.25
лоты=$500*(риск/100)
лоты=$500*(0.05/100)
лоты=$500(0.0005)
лоты= $0.25
Понравилось, что советник автоматически открывает лоты по $0.25.
И количество лотов не смешивается со Stoploss или TProfit.
Надеюсь, вы сможете помочь мне решить эту проблему.
Спасибо большое.
extern double profsize = 10;
extern double Risk =5;
int err;
int ticket;
double stop;
double prof;
int init() { return(0); }
int deinit() { return(0); }
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
double sl = stopsize*Point*MathPow(10,Digits%2);
double tp = profsize*Point*MathPow(10,Digits%2);
stop = (Ask-sl);
prof = (Ask+tp);
ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
Comment(" ");
}
//
//
//
//
//
double getLots(double stopLoss, double risk)
{
RefreshRates();
double pPoint = MarketInfo(Symbol(),MODE_POINT);
double step = MarketInfo(Symbol(),MODE_LOTSTEP);
double minLot = MarketInfo(Symbol(),MODE_MINLOT);
double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double lots = minLot;
if (risk>0 && stopLoss>0)
{
lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint);
}
return(MathMax(MathMin(lots,maxLot),minLot));
}hock87
Не существует простого(r) способа рассчитать размер лота, когда учитываются эквити, стоп-лосс и необходимый риск. Также вы не можете рассчитать риск, не зная стоп-лосс (подумайте об этом: если вы открываете ордер, скажем, размером в 1 лот и закрываете его через 1 пункт или через 100 пунктов, потери (и, соответственно, риск, который был принят) не будут одинаковыми и не могут быть одинаковыми).
Если вы рассчитываете его таким образом (без известного стоп-лосса), то это не расчет риска, а простой расчет размера лота (который не подразумевает никакого расчета риска).
hock87
Не существует простого (r) способа рассчитать размер лота, когда учитываются эквити, стоп-лосс и необходимый риск. Также вы не можете рассчитать риск, не зная стоп-лосс (подумайте об этом: если вы открываете ордер, скажем, размером 1 лот и закрываете его через 1 пункт или через 100 пунктов, потери (а значит, и риск, который был принят) не будут одинаковыми и не могут быть одинаковыми).
Если вы рассчитываете так (без известного стоп-лосса), то это не расчет риска, а простой расчет размера лота (который не подразумевает никакого расчета риска).Младен, вы правы.
Я знаю, что это не подразумевает никакого расчета риска.
и просто хочу простой расчет размера лота,
пусть он автоматически рассчитывает размер лота с учетом баланса счета с %.
lots=$500*(risk%/100)
лоты=$500*(0.05/100)
лоты=$500(0.0005)
лоты=$0.25
Понравилось, что советник автоматически открывает лоты по $0.25.
И количество лотов не смешивается со Stoploss или TProfit.
Как его закодировать?
Спасибо.
Младен, вы правы.
Я знаю, что это не подразумевает никакого расчета риска.
и просто хочу простой расчет размера лота,
пусть он автоматически рассчитывает размер лота с учетом баланса счета в %.
lots=$500*(risk%/100)
лоты=$500*(0.05/100)
лоты=$500(0.0005)
лоты=$0.25
Понравилось, что советник автоматически открывает лоты по $0.25.
И количество лотов не смешивается со Stoploss или TProfit.
Как его закодировать?
Спасибо.Попробуйте способ, описанный KimIV здесь: b-Lots
Спасибо большое mladen, я думаю, это похоже на то, что у меня в голове#1579, кстати, можно ли преобразовать DPO так же, как RSI или MFI уравнения, нормализовать вертикальную шкалу?Detrended Price Oscillator - MQL4 Code Base, еще раз спасибо.
Спасибо большое mladen, я думаю, это похоже на то, что у меня в голове#1579, кстати, можно ли преобразовать DPO таким же образом, как RSI или MFI уравнения, нормализовать вертикальную шкалу?Detrended Price Oscillator - MQL4 Code Base, еще раз спасибо.
kenwa
Когда у вас есть шаблон, это не сложно.
Вот rsi для DPO. Верхний - DPO, нижний - RSI DPO.
привет mladen, я получил ваш rsi для macd раньше, он сделан аналогичным способом/логикой, как эти недавние версии индекса силы FI и DPO?
Я прикрепил ваши новые версии rsi, сделанные недавно (FI и DPO) на моем компьютере, я столкнулся с проблемой, если я использую функцию icustom, чтобы вызвать их выходные значения, это не от 0 до 100, как показано на графике, а от -100 до 0 до 100, любые комментарии о причинах, это я неправильно вызываю внутреннее значение буфера? спасибо за совет.
Здравствуйте, Младен.
У меня проблема,
когда цена открытия ордера на покупку движется в обратном направлении и цена Distance market превышает 25 пунктов,
он автоматически открывает ордер на покупку снова.
Как закодировать эту стратегию?
Спасибо.
extern double lots = 0.1;
extern double stopsize = 50;
extern double profsize = 20;
int err;
int ticket;
double stop;
double prof;
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask+stopsize*Point);
prof=(Ask-profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
return(0);
}Привет, Младен.
У меня проблема,
когда цена открытия ордера на покупку движется в обратном направлении и цена Distance market превышает 25 пунктов,
он автоматически открывает ордер на покупку снова.
Как закодировать эту стратегию?
Спасибо.
extern double lots = 0.1;
extern double stopsize = 50;
extern double profsize = 20;
int err;
int ticket;
double stop;
double prof;
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask+stopsize*Point);
prof=(Ask-profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
return(0);
}hock87
Этот код не компилируется (замените OP_Buy на OP_BUY) и я не вижу вообще никаких условий для открытия другого ордера. В данный момент вы разрешаете только один ордер (строка "if (TotalOrders<1)") Это должно быть вашей отправной точкой.
CCI fdoe hpp
Я скачал этот индикатор из одной из тем, и он намного лучше, чем индикаторы CCI-zones или Ma-zones.
Можно ли его адаптировать для отображения на экране как в индикаторе зон?
Он установлен на настройку CCI 13, но если его можно легко превратить в индикатор с переменной настройкой, это было бы бонусом - но это очень второстепенная просьба.
Это индикатор Forex-TSD, но папки mq4 с ним не было.
Спасибо
TEAMTRADER