защита эксперта от потери электроэнергии. - страница 3

 
CoreWinTT >>:
из итсории


Из итории можно. Но размер лота это  пример . Если взять размер трала который постоянно меняется  и хранится в переменной. как с ним поступить?
 
         for(i=0;i<OrdersTotal();i++)
         {
            if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true&&OrderSymbol()==Symbol()&&OrderMagicNumber()==Magik)
            {
               OrderDelete(OrderTicket());
            }
         }
         res=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slippage,NormalizeDouble(Bid+StopLost*Point,Digits),NormalizeDouble(Bid-TakeTrofit*Point,Digits)," ",Magik,0);
         if (res<0)
         {
            Comment("Ошибка открытия ордера № ",GetLastError());
            return;
         }
         OrderSelect(res,SELECT_BY_TICKET,MODE_TRADES);
         GlobalVariableSet("Martin_Lots",OrderLots());
         GlobalVariableSet("OpenPrice",OrderOpenPrice());
         GlobalVariableSet("CMD",OrderType());
         Sleep(1000);
         
можно так
 
mazepa >>:


Из итории можно. Но размер лота это пример . Если взять размер трала который постоянно меняется и хранится в переменной. как с ним поступить?

каждое последнее значение скидывать в глобальную переменную

 
sanyooooook >>:

каждое последнее значение скидывать в глобальную переменную


с помощью функций GlobalVariable**** ?
т.е получил новое значение переменной и сразу записываю
?
 
mazepa >>:


с помощью функций GlobalVariable**** ?
т.е получил новое значение переменной и сразу записываю
?

ну и все значимые переменные соответственно, при инициализации считываете из них и т.п.

 
mazepa писал(а) >>
Привет всем. Прошу вас поделется опытом. По поводу защиты переменных эксперта от временного отключения электропитания или перезагрузки компа.
Проблема состоит в том, что эксперт в своей работе делает определенные вычисления на основе которых ведутся дальнейшие его действия. При отключении мт4 данные советника обнуляются и потом эксперт начинает все с нуля. Что можно придумать?


На какое время отключается электроэнергия и какова мощность компьютера?

 
Чтобы быть до конца спокойным - надо конечно кидать на хостинг... По крайней мере будет с кого спросить...

Если нет желания платить за хостинг - то делаем четыре вещи:
1. Ставим UPC помощнее
2. Все значимые переменные держим как глобальные
3. В каждом проходе советника анализируем значимые переменные на изменение, и в случае изменения - скидываем в файл.
4. Любым внешним планировщиком (хоть и стандартным виндовым) периодически (например раз в 15 минут) скидываем файло со значимыми переменными на сьемный носитель (например на флешку, которая постоянно торчит в компе), можно дополнительно еще скидывать по сети на удаленный комп или через интернет на какой нибудь фтп.

При восстановлении питания - если глобальные переменные не побились - юзаем их... Если побились - читаем из файла, если файл тоже побился - восстанавливаем файл со сменного носителя или из сети..

Все эти вещи (кроме UPC, естественно) можно решить программно и полностью автоматизировать...
 
ЗЫ: собственно говоря, про планировщика и периодическое скидывание файла, я погорячился... Надо просто ЮПС с интерфейсом... Т.е. при исчезновении питания - запускается скрипт, который - скидывает все файлы во внешние хранилища и корректно выключает комп... А в БИОС выставить опцию, чтобы при восстановлении питания - комп включался автоматически. И в автозапуск забить скрипт восстановления файлов из внешних носителей и МТ... 
Соотвественно в советнике при инициализации пытатсья считать внешние переменные, если они не читаемы, читаем данные из файлов...

Вобщем-то, с вероятностью 99% все корректно включиться и заработает... 100% как известно даже морг не дает:)
 
Richie >>:


На какое время отключается электроэнергия и какова мощность компьютера?


на 5 минут
 
mazepa писал(а) >>


на 5 минут


Тогда достаточно обычного ИБП.