Как лучше, оставить так или сделать массив?

 

Добрый день. Пытаюсь понять массивы и есть уверенность что лучше данный код переписать под массив.

Так или нет. Есть ли смысл? Функция меняет размер лота в зависимости от депозита.

Или может кто предложит что-то удобнее и проще.

Заранее благодарю.

//------------------------------------

double Choose_Balance(double Balance)
{
double Lotty = 0.0;

if (Balance >= 2000)
{
Lotty = 0.1;
}
if (Balance >= 4000)
{
Lotty = 0.2;
}
if (Balance >= 6000)
{
Lotty = 0.3;
}
if (Balance >= 8000)
{
Lotty = 0.4;
}
if (Balance >= 10000)
{
Lotty = 0.5;
}
if (Balance >= 12000)
{
Lotty = 0.6;
}
if (Balance >= 14000)
{
Lotty = 0.7;
}
if (Balance >= 16000)
{
Lotty = 0.8;
}
if (Balance >= 18000)
{
Lotty = 0.9;
}
if (Balance >= 20000)
{
Lotty = 1.0;
}
if (Balance >= 22000)
{
Lotty = 1.1;
}
if (Balance >= 24000)
{
Lotty = 1.2;
}
if (Balance >= 26000)
{
Lotty = 1.3;
}
if (Balance >= 28000)
{
Lotty = 1.4;
}
if (Balance >= 30000)
{
Lotty = 1.5;
}
if (Balance >= 32000)
{
Lotty = 1.6;
}
if (Balance >= 34000)
{
Lotty = 1.7;
}
if (Balance >= 36000)
{
Lotty = 1.8;
}
if (Balance >= 38000)
{
Lotty = 1.9;
}
if (Balance >= 40000)
{
Lotty = 2.0;
}
if (Balance >= 42000)
{
Lotty = 2.1;
}
if (Balance >= 44000)
{
Lotty = 2.2;
}
if (Balance >= 46000)
{
Lotty = 2.3;
}
if (Balance >= 48000)
{
Lotty = 2.4;
}
if (Balance >= 50000)
{
Lotty = 2.5;
}
if (Balance >= 52000)
{
Lotty = 2.6;
}
if (Balance >= 54000)
{
Lotty = 2.7;
}
if (Balance >= 56000)
{
Lotty = 2.8;
}
if (Balance >= 58000)
{
Lotty = 2.9;
}
if (Balance >= 60000)
{
Lotty = 3.0;
}
if (Balance >= 62000)
{
Lotty = 3.1;
}
if (Balance >= 64000)
{
Lotty = 3.2;
}
if (Balance >= 66000)
{
Lotty = 3.3;
}

return(Lotty);
}

 
Pavel_MSK >>:

Или может кто предложит что-то удобнее и проще.

double Choose_Balance(double Balance)
{
   if (Balance < 2000) return(0);

   return (MathFloor(Balance/2000)*0.1);
}
Думаю, так удобней будет.
 

Да... Вам бы лучше пока еще немного поучиться. Вообще есть целая ветка для новичков. Перейду к делу, ваш код очень избыточен. Я так понимаю вы увеличиваете размер лота линейно, на каждые две тысячи депо прибавляете 0.1 лота. Это можно организовать гораздо проще и элигантней:

double step_balance=2000;        //На каждые 2000 тысячи баланса

double step_lot=0.1;                  //повышать лот на 0.1

double Choose_Balance(double Balance)
{

   double lot;

   lot=MathFloor(Balance/step_balance)*step_lot;

   return(lot);

}


Функция самопроверяющаяся. Если размер депо (меньше 2000) не позволяет открыть даже 0.1 лот, то она вернет 0, что надо понимать это означает что торговля запрещена. Функция работает с любыми цифрами а не только до 66 000 баксов. Как видите массивы здесь обсолютно не причем. А вообще я вам посоветую отходить от вбивания жестких переменных в функции. Для этого есть циклы, математические функции и т.д. Как видите я даже баланс и размер лота выразил через переменные, что бы в будущем можно было бы менять эти значения динамически.

 

О, большое спасибо.

Причина обращения: