Помогите разобраться! [Как избегать обнуления]

 

Всем привет!

Я часто сталкиваюсь с проблемой обнуления параметров, вот и сейчас столкнулся. Пожалуйста, объясните на живом примере, как избегать обнуления.

Сейчас возникла потребность в записи размера депозита и дальнейшей проверке:

1. Записать AccountEquity() до открытия позиции. Например: Depo1=AccountEquity();

2. Провести сравнение и запись. Например: if (Depo1>Depo2) Depo2=Depo1;

Пожалуйста, подскажите как реализовать подобный алгоритм, чтобы Depo2 при запуске советника был равен нулю, а при отключении или остановке советника обнулялся (при этом во время работы не обнулялся)???

 
Чем не устроил ответ на этой странице?
 

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

 

Если я правильно понял, то достаточно перед init объявить переменную Depo2 в следующем виде: static double Depo2;.

Или в init: static double Depo2=0;


 
WindSW:

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


попробуйте с таким скриптом поэкспериментировать:

#property show_inputs
extern int My_Magic_Value  =  12345;

int start(){
   string s;
   int value;
   s = TimeToStr(Time[0],TIME_DATE);   //Имя глоб.переменной будет сегодняшняя дата в формате yyyy.mm.dd
   if (GlobalVariableCheck(s)){        //Проверим существование переменной с именем сегодняшняя дата
      value = GlobalVariableGet(s);
      if (value == My_Magic_Value){
//______________________________________________________
// действия если сегодня уже устанавливалась переменная
               Print("Сегодня уже устанавливалась глобальная переменая");
      }else {
//______________________________________________________
// действия если переменная существует, НО наш My_Magic_Value не соответствует найденому
                  GlobalVariableDel(s);
                  GlobalVariableSet(s,My_Magic_Value);
                  Print("Глобальная переменая уже существует, переменная удалена и создана");
             }
   }else{
//______________________________________________________
// действия если сегодня не устанавливалась переменная   
         GlobalVariableSet(s,My_Magic_Value);
         }
   
return(0);
}
//+------------------------------------------------------------------+
 
IgorM:


попробуйте с таким скриптом поэкспериментировать:


Надо бы еще вчерашние переменные удалять
 
Vinin:

Надо бы еще вчерашние переменные удалять

подправь пожалуйста, интересно глянуть - код за пару минут набросал (пытаюсь вернуться в программирование, сноровку видимо потерял уже)
 
IgorM:


попробуйте с таким скриптом поэкспериментировать:



Со своим вариантом и с обнулением я разобрался. И за это всем большое спасибо.

А вот твой пример меня озадачил, не получается разобраться какой смысл от этого скрипта.

 
WindSW:
Со своим вариантом и с обнулением я разобрался. И за это всем большое спасибо.

А вот твой пример меня озадачил, не получается разобраться какой смысл от этого скрипта.

Ваш пример только телепаты видят )))))

а в моем примере можно раз в сутки делать "отметку" в глобальных переменных о том, что сегодня код запускался, если код сегодня запускался, значит можно произвести действия по поиску сохраненных данных, если сегодн якод не запускался, значит предполагаем, что нет сохранных данных. Да и код выложил чтобы показать пример использования глобальных переменных.

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