Я уже обращался на форум по поводу записи и чтения массивов в файл, а теперь опять столкнулся с проблемой: записав в файл массив, не могу потом найти элемент массива по значению, вот скрипт:
Результат выполнения данного скрипта у меня - это запись в журнале "Слова xyz в записанном файле нет, а есть слово xyz"
Подскажите, пожалуйста, в чем ошибка и как исправить?
Вы используете 2-ух мерный массив string y[][], а проверку (поиск) производите в одномерном массиве. Попробуйте эту функцию:
А ещё вопрос, кто-нибудь встречал такое явление, когда один и тот же скрипт, математически вычисляющий некоторое целое число в разных билдах терминала выдает разные значения. Например в 399 билде выдает результат 488143839, а в 416-м выдает 348186686.
Я уже несколько раз проверял - скрипт в разных билдах запускается один и тот же, с теми же параметрами.
А ещё вопрос, кто-нибудь встречал такое явление, когда один и тот же скрипт, математически вычисляющий некоторое целое число в разных билдах терминала выдает разные значения. Например в 399 билде выдает результат 488143839, а в 416-м выдает 348186686.
Я уже несколько раз проверял - скрипт в разных билдах запускается один и тот же, с теми же параметрами.
Числа у вас большие, возможно причина в переполнении целой переменной.
moskitman: нет, Вадим, настольный! Видюха и сама 512мб ДжиФорс-9600
В 32 разрядных клиентских операционных системах невозможно использовать память объемом более 3,5GB (в некоторых 3,25, это зависит от особенностей биоса системных плат) Это объясняется 32 разрядной архитектурой и тем что пространство от 3,5 до 4Gb занято под адресацию устройств PCI, в частности если у вас установлено много PCI устройств, то вы "увидите" меньше оперативной памяти, чем у вас есть
Числа у вас большие, возможно причина в переполнении целой переменной.
А не знаете как этого избежать? Не использовать функции типа MathFloor(), MathSqrt() ...? Или ничего не сделать с этим? Мне надо чтобы одинаково везде считалось.
yosuf: Часто пропадает интернет, нельзя, ли автоматизировать программно его повторный запуск? Или что в этом направлении известно? Есть ли способ одновременно запитать от двух и более провайдеров, в смысли, паралельно? Заранее благодарю.
XmaksasX:
создаете обычный текстовый документ пихаете в него вот этот текст
сохраняете его и меняете расширение с *.txt на *.bat, запускаете сворачиваете и радуетесь))
Уважаемый XmaksasX, безмерно благодарю Вас за очень дельный совет, за двое суток ни разу не выбило интернет, или я этого не замечаю, возможно, поскольку работает принцип, подсказанный Вами. Раньше могло вырубаться каждые 10 минут, каждый час или ночью, еще печальнее, когда на работе, т.е. без всякой системы. Теперь - благодать, можно и выспаться.
Еще один вопрос, можно ли реальным счетом управлять паралельно с двух компов одновременно, с компов дома и на работе?
Вот кусок кода из советника. Я хотел реализовать идею, что если есть отклонение от цены открытия на сигму, то закрываем. по идее если сигму поставить = 1*Point. То советник должен с прибылью всегда закрывать, т.к. отклонение всегда присутствует в 1*Point, другое дело, что в реале есть спред поэтому он будет сливать, а тестере то нет спреда, значит он должен зарабатывать, постоянно. мало но постоянно.
Думаю, что здесь ошибка.
if (OrdersTotal()!=0)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if (OrderType()==OP_BUY)
{
if ((Bid-Open[0])>=SigmaHigh*Point) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Red);
}
if (OrderType()==OP_SELL)
{
if ((Open[0]-Ask)>=SigmaLow*Point) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Green);
}
}
Я уже обращался на форум по поводу записи и чтения массивов в файл, а теперь опять столкнулся с проблемой: записав в файл массив, не могу потом найти элемент массива по значению, вот скрипт:
Результат выполнения данного скрипта у меня - это запись в журнале "Слова xyz в записанном файле нет, а есть слово xyz"
Подскажите, пожалуйста, в чем ошибка и как исправить?
Вы используете 2-ух мерный массив string y[][], а проверку (поиск) производите в одномерном массиве. Попробуйте эту функцию:
и условие проверки измените на
TarasBY, спасибо огромное! Работает!
А ещё вопрос, кто-нибудь встречал такое явление, когда один и тот же скрипт, математически вычисляющий некоторое целое число в разных билдах терминала выдает разные значения. Например в 399 билде выдает результат 488143839, а в 416-м выдает 348186686.
Я уже несколько раз проверял - скрипт в разных билдах запускается один и тот же, с теми же параметрами.
TarasBY, спасибо огромное! Работает!
А ещё вопрос, кто-нибудь встречал такое явление, когда один и тот же скрипт, математически вычисляющий некоторое целое число в разных билдах терминала выдает разные значения. Например в 399 билде выдает результат 488143839, а в 416-м выдает 348186686.
Я уже несколько раз проверял - скрипт в разных билдах запускается один и тот же, с теми же параметрами.
Числа у вас большие, возможно причина в переполнении целой переменной.
нет, Вадим, настольный! Видюха и сама 512мб ДжиФорс-9600
Это объясняется 32 разрядной архитектурой и тем что пространство от 3,5 до 4Gb занято под адресацию устройств PCI, в частности если у вас установлено много PCI устройств, то вы "увидите" меньше оперативной памяти, чем у вас есть
Числа у вас большие, возможно причина в переполнении целой переменной.
Часто пропадает интернет, нельзя, ли автоматизировать программно его повторный запуск? Или что в этом направлении известно? Есть ли способ одновременно запитать от двух и более провайдеров, в смысли, паралельно? Заранее благодарю.
XmaksasX:
создаете обычный текстовый документ пихаете в него вот этот текст
:LOOP
ping 8.8.8.8 | find "100%" && (rasdial /disconnect & rasdial "НАЗВАНИЕ ВАШЕГО СОЕДИНЕНИЯ" login pass)
ping -w 1000 -n 30 127.0.0.1
goto LOOP
сохраняете его и меняете расширение с *.txt на *.bat, запускаете сворачиваете и радуетесь))
Уважаемый XmaksasX, безмерно благодарю Вас за очень дельный совет, за двое суток ни разу не выбило интернет, или я этого не замечаю, возможно, поскольку работает принцип, подсказанный Вами. Раньше могло вырубаться каждые 10 минут, каждый час или ночью, еще печальнее, когда на работе, т.е. без всякой системы. Теперь - благодать, можно и выспаться.
Еще один вопрос, можно ли реальным счетом управлять паралельно с двух компов одновременно, с компов дома и на работе?
Вот кусок кода из советника. Я хотел реализовать идею, что если есть отклонение от цены открытия на сигму, то закрываем. по идее если сигму поставить = 1*Point. То советник должен с прибылью всегда закрывать, т.к. отклонение всегда присутствует в 1*Point, другое дело, что в реале есть спред поэтому он будет сливать, а тестере то нет спреда, значит он должен зарабатывать, постоянно. мало но постоянно.
Думаю, что здесь ошибка.
а тестере то нет спреда
В тестере есть спред. Точно такой-же как на графике во время запуска теста.