Создал советник, тест за 17 лет.
Объем 0.01 Максимальный лот 0.1. Все без изменений, на протяжении всего теста. Нужна доработка. В пропорциональном увеличении. На 10 000 депозита, объем 0.01 На 20 000, 0.02. И так далее. Что бы проверить краш тестом. На максимально допустимой нагрузке депозита. Андрей выручай…
Хочу поставить на реал. Демка уже достала. Что в коде нужно добавить, что бы увеличивать объем сделки, с ростом депозита???
Комментарии (21)
14 beton2011 Сообщений: 895
14 Syte Автор Сообщений: 399
0 delete-kintiforp Сообщений: 97 - Удален 11.08.19
14 Syte Автор Сообщений: 399
14 Syte Автор Сообщений: 399
А ну тогда все понятно, до свидание.
14 beton2011 Сообщений: 895
14 Syte Автор Сообщений: 399
35 AM2 Сообщений: 16285 - Андрей
Редактирован: 23 августа 2017, 05:04
0 delete-kintiforp Сообщений: 97 - Удален 11.08.19
Собсна, самого интересует подобное.
Вопрос ко всем. По сути-то это лишь вычисление % от числа, от размера депо, так в чём возникает проблема при вычислении объёма ордера?
24 ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.
14 Syte Автор Сообщений: 399
Внешние переменные:
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 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));
}
12 ZEYTO Сообщений: 41
0 delete-kintiforp Сообщений: 97 - Удален 11.08.19
На демке сегодня так же как и в тесте. Ни какого существенного отличия нету. Это для скептиков.
14 Syte Автор Сообщений: 399
0 delete-kintiforp Сообщений: 97 - Удален 11.08.19
Чем докажите? мы уже перестали верить картинкам, уже взрослые ребята
14 beton2011 Сообщений: 895
14 Syte Автор Сообщений: 399
14 beton2011 Сообщений: 895
19 ars2005tron Сообщений: 1059 - Арсений
15 Moonsoon Сообщений: 52 - Moonsoon
19 ars2005tron Сообщений: 1059 - Арсений
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий