nazim25:
в тесторе стротегий . советник нормально увеличевает объем лота до тех пор пока не достигнит объема 0,06 . начинаю я с0,01 и каждый последюший лот увеличиваю на 0,01
и как только он достигает 0,06 то все последюшие ордера открывает на 0,06 . у меня в настройках нет ограничения
lotsss=lotsss+0,01;///прибавляем увеличения пример 0,01int boyy = (int)(lotsss/lotstep); // округлили до целого числа шагов изменения лота
lotsss = (double)boyy * lotstep; // теперь имеем правильный объем, кратный шагу изменения лота
#property strict void start() { double lotsss=0; double lotstep=0.01; for(int n=1; n<10; n++) { lotsss=lotsss+0.01; //прибавляем увеличения пример 0,01 int boyy = (int)round(lotsss/lotstep); // округлили до целого числа шагов изменения лота Alert("boyy=",boyy); lotsss = (double)boyy * lotstep; // теперь имеем правильный объем, кратный шагу изменения лота Alert("lotsss=", DoubleToString(lotsss,2)); } }
Попробуйте изменить так:
int boyy = (int)round(lotsss/lotstep);
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
в тесторе стротегий . советник нормально увеличевает объем лота до тех пор пока не достигнит объема 0,06 . начинаю я с0,01 и каждый последюший лот увеличиваю на 0,01
и как только он достигает 0,06 то все последюшие ордера открывает на 0,06 . у меня в настройках нет ограничения
вот первый способ
for(int ii=0;ii<OrdersTotal();ii++)
{
if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol() )
{
if(t<OrderOpenTime())
{
t=OrderOpenTime();
lotsss=OrderLots();
} //Последний объём лота любой позиции
}
lotsss=lotsss+0,01;///прибавляем увеличения пример 0,01
int boyy = (int)(lotsss/lotstep); // округлили до целого числа шагов изменения лота
lotsss = (double)boyy * lotstep; // теперь имеем правильный объем, кратный шагу изменения лота
RefreshRates();
int boy=OrderSend(Symbol(), OP_BUY, lotsss, Ask, 3, 0,0);
вот второй способ
TOTAL=OrdersTotal();//
int df=TOTAL-1;
if(OrderSelect(df,SELECT_BY_POS,MODE_TRADES)==true)
{
double lotsss = OrderLots(); //берем лот последнего ордера
lotsss=lotsss+0,01;///прибавляем увеличения пример 0,01
int boyy = (int)(lotsss/lotstep); // округлили до целого числа шагов изменения лота
lotsss = (double)boyy * lotstep; // теперь имеем правильный объем, кратный шагу изменения лота
RefreshRates();
int boy=OrderSend(Symbol(), OP_BUY, lotsss, Ask, 3, 0,0);
два способа и оба дойдя до 0,06 больше не увеличивают. пробовал в тесторе у 2-х брокеров
даже пробовал увеличивать