Как задать внешний параметр по умолчанию рыночным значением?

 
Например есть некоторая необходимость внести в настройки скрипта валюту, в которой будут пересчитываться средства, и хотелось бы чтобы по умолчанию эта валюта являлась бы валютой депозита. То есть хотелось бы написать вот так:
extern string currency = AccountInfoString(ACCOUNT_CURRENCY); // валюта депозита
Но так не прокатывает... Вопрос в том, может всё-таки можно сделать какой-то ход конем, чтобы задать такую настройку?
 
вы ломаете логику :) т.к. входные параметры - это константы, существующие для коммуникации с пользователем. если вам нужны переменные, не зависящие от человека - объявите и задайте их внутри кода.
 
leon_17:
сделайте две настройки
enum CurrencyToUse
{
   DepositCurrency, // Deposit Currency
   CustomCurrency // CustomCurrency (set below)
};

input CurrencyToUse InpCurrency; // What currency to use
input string InpCustomCurrency = "USD"; // CustomCurrency

string Currency;

void OnStart()
{
   if (InpCurrency == DepositCurrency)
      Currency = AccountInfoString(ACCOUNT_CURRENCY);
   else
      Currency = InpCustomCurrency;
}

или вообще просто

input string InpCurrency = "AUTO"; // Currency to use

string Currency;

void OnStart()
{
   if (InpCurrency == "AUTO")
      Currency = AccountInfoString(ACCOUNT_CURRENCY);
   else
      Currency = InpCurrency;
}
 
TheXpert:
сделайте две настройки

или вообще просто

Спасибо! Думаю второй вариант - это как раз тот самый ход конем, что я искал.
 
Можно гораздо проще - если параметр не задан - пустая строка, тогда использовать какое-то по-умолчанию и не возиться ни с какими авто, и всего одной переменной хватит.
 
Dmitry Fedoseev:
Можно гораздо проще - если параметр не задан - пустая строка, тогда использовать какое-то по-умолчанию и не возиться ни с какими авто, и всего одной переменной хватит.
А как узнать, что параметр не задан, тоже ведь надо StringLen использовать. В предложенном коде, я просто отказался от else, а в остальном довольно все просто и коротко...

А вот с числовыми переменными сложнее конечно - тут каким-то значениями жертвовать придется и хорошо, если алгоритм позволяет использовать в качестве умолчательного флага отрицательные значения. А если нет... и 0 нельзя... если значение по умолчанию может быть любым?
 
leon_17:
А как узнать, что параметр не задан, тоже ведь надо StringLen использовать. В предложенном коде, я просто отказался от else, а в остальном довольно все просто и коротко...

А вот с числовыми переменными сложнее конечно - тут каким-то значениями жертвовать придется и хорошо, если алгоритм позволяет использовать в качестве умолчательного флага отрицательные значения. А если нет... и 0 нельзя... если значение по умолчанию может быть любым?

Шла бы ты домой, Пенелоппа. 

 
leon_17:
А как узнать, что параметр не задан, тоже ведь надо StringLen использовать. В предложенном коде, я просто отказался от else, а в остальном довольно все просто и коротко... 
if (InpCurrency == "")
 
leon_17:
А как узнать, что параметр не задан, тоже ведь надо StringLen использовать. В предложенном коде, я просто отказался от else, а в остальном довольно все просто и коротко...

А вот с числовыми переменными сложнее конечно - тут каким-то значениями жертвовать придется и хорошо, если алгоритм позволяет использовать в качестве умолчательного флага отрицательные значения. А если нет... и 0 нельзя... если значение по умолчанию может быть любым?

Не только StringLen(), а еще и TrimLeft() c TrimRight(). Но вместо StringLen() проще, как написано выше - сравнивать на равенство с "".

Не приходилось пока здесь встречать ни одной задачи, чтобы требовался и положительные значения и отрицательные, поэтому -1 или любое отрицательное.