[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 529

 
Vinin:

Чем Вам не нравятся функции iHighest() и iLowest()?


Я об этих функциях не знал. Сейчас попробую поэкспериментирую.

Спасибо за информацию! 

 
TheXpert:
0x как раз и обозначает 16-ричное.

шестнадцаричные числа обозначает и то, и другое.к примеру в С 0х0000, в ассемблерах 0000H
 

Здравствуйте.

Подскажите пожалуйста, как можно дописывать в файл получаемую информацию? Т.е. я получаю число, его нужно записать в файл - в конец файла не удаляя все его содержимое.

Вроде это FileWriteString но почему то записывает пустоту вместо того что есть.. кто то может дать пример как правильно нужно?

.. еще запись происходит, если происходит, в непонятной кодировке не читаемой -((

Спасибо.

 
TarasBY:

Вы 0-вой индекс индикаторных массивов не заполняете, 

  а к нему обращаетесь: 

 Немножко (структурно) кривовато, НО для первого раза сойдёт. Мой совет: "Сразу привыкайте к правильным подходам написания кода. Например, использование в коде этого условия: 

малограмотно, потому, что рано или поздно Вы из тестера перейдёте на on-line торговлю, а там бывает работают параллельно несколько советников и такой код работать не будет.


Насколько я понимаю мне необходимо переделать так:

double L_1= iCustom(NULL,0,"Go_go",K,0,1);  //Линия минимума
double L_2= iCustom(NULL,0,"Go_go",K,1,1);  //Линия максимума 

 Опять та же проблема. Когда запускаю советник, то сразу открывается ордер SELL.

Объясните пожалуйста почему так? 

 
Pacman:


Насколько я понимаю мне необходимо переделать так:

 Опять та же проблема. Когда запускаю советник, то сразу открывается ордер SELL.

Объясните пожалуйста почему так? 

Заменяете: 

  double L_1= iCustom(NULL,0,"Go_go",K,0,0);  //Линия минимума
  double L_2= iCustom(NULL,0,"Go_go",K,1,0);  //Линия максимума 

на:

  double L_1= Low[iLowest (NULL, 0, MODE_LOW, K, 1)];;    //Значение минимума
  double L_2= High[iHighest (NULL, 0, MODE_HIGH, K, 1)];;  //Значение максимума 

 А почему открывается (в Вашем варианте) ордер SELL (на основании мной сказанного ранее) найдите ответ САМОСТОЯТЕЛЬНО!!!

 

Выставляю флаги для направления торговли. Условие: Если попадает в одну зону между линиями, то покупать и не продавать, если в другую зону, то не покупать и продавать. Регулирую этот процесс горизонтальными линиями.

extern bool    Покупать  = false;
extern bool    Продавать = false; 


   if ( pcb < Ask && Ask < pl )       // Если Аск цены попал в зону между Уровнем и КлозеБай,
    {                             
     Покупать = false;                // останавливаем покупку
     Продавать = true;
    }
   if ( pl < Bid && Bid < pcs )       // Если Бид цены попал в зону между Уровнем и КлозеСелл,
    {                            
     Продавать = false;               // останавливаем продажи (контрольный флаг)
     Покупать = true;
    }
   if ( pl < Bid && Bid < pb )        // Если Бид цены попал в зону между Уровнем и Покупкой,
    {                                 // начинаем покупать
     Покупать = true;
    }
   if ( pl > Ask && Ask > ps )        // Если Аск цены попал в зону между Уровнем и Продажей,
    {                                 // начинаем продавать
     Продавать = true;             
    }

Перед этим запрашиваю цены выставленных линий. А после этого блок выставления или закрытия ордеров - в зависимости от флага.

Код тривиально простой. Но... - вопрос...

Когда эта конструкция начинает работать, то значения покупать и продавать оказываются непредсказуемыми (хаотичными). Почему такое происходит? ведь есть четкие условия функции "иф" и операторов "энд" и "больше/меньше".

Т.е. программа себя ведет по каким-то своим соображениям: либо покупает, либо продает, либо не делает ничего не зависимо от того, что будет написано в значениях переменных.


Как и что нужно написать, чтобы условия выполнялись и, самое главное, работали? Что я не так делаю и чего не учитываю? (вроде все, что необходимо, указал в условиях функций)


И еще один момент по ходу этой же темы: когда значения переменных меняются в зависимости от условий, в настройках советника (когда заходишь через Ф7) значения остаются такими, как их выставил пользователь. Поэтому не представляется возможным понять, какие сейчас остались значения этих переменных. Как сделать так, чтобы было видно, какие их значения в текущий момент?

 
Dimka-novitsek:
Доброго утра! Не работает условие
 
Я уже строку с ифом рассматривал-рассматривал, рассматривал-рассматривал.... Есть же ведь какая-то причина, я может зашорился и чего-то простое и элементарное не вижу, бывает ведь.

Утром смотрел. Выходил. Пришол, вновь смотрю Вроде куда уже проще, иф, больше, меньше.. Совсем не пойму.



А это у меня под стартом


п.с. Это всё часть такого условия стратегии

EMA – период 10 пересекает с верху в низ EMA – период 200 , CCI пересекает уровень 0,100 или-100 с вверху в низ; Свеча закрывается или находится ниже LMA – период 100


Скобки бы расставили что и как выполняется

if( CCI_50S>100&&CCI_50<100 ||CCI_50S>0&&CCI_50<0|| CCI_50S>-100&&CCI_50<-100 )CCInapravlenie=true;
 
Chiripaha:

Выставляю флаги для направления торговли. Условие: Если попадает в одну зону между линиями, то покупать и не продавать, если в другую зону, то не покупать и продавать. Регулирую этот процесс горизонтальными линиями.

Перед этим запрашиваю цены выставленных линий. А после этого блок выставления или закрытия ордеров - в зависимости от флага.

Код тривиально простой. Но... - вопрос...

Когда эта конструкция начинает работать, то значения покупать и продавать оказываются непредсказуемыми (хаотичными). Почему такое происходит? ведь есть четкие условия функции "иф" и операторов "энд" и "больше/меньше".

Т.е. программа себя ведет по каким-то своим соображениям: либо покупает, либо продает, либо не делает ничего не зависимо от того, что будет написано в значениях переменных.

Как и что нужно написать, чтобы условия выполнялись и, самое главное, работали? Что я не так делаю и чего не учитываю? (вроде все, что необходимо, указал в условиях функций)

И еще один момент по ходу этой же темы: когда значения переменных меняются в зависимости от условий, в настройках советника (когда заходишь через Ф7) значения остаются такими, как их выставил пользователь. Поэтому не представляется возможным понять, какие сейчас остались значения этих переменных. Как сделать так, чтобы было видно, какие их значения в текущий момент?

Для начала сгруппируйте условия: 

    extern bool    Покупать  = false;
    extern bool    Продавать = false; 

    if (pl > Ask) {if (Ask > psb || Ask > ps) Продавать = true;}
    else {if (pl < Bid) if (Bid < pcs || Bid < pb) Покупать = true;}
Может так будет легче разобраться?! (В смысл самого кода я не вникал).
 

На первый взгляд, тут дело наверно в переменных, а не условиях. Я бы для начала вывел переменные алертами, т.к. сам код выглядит НОРМАЛЬНЫМ !!

 Alert(" pcb " , pcb );   Alert(" pl " , pl );   Alert(" pb " , pb );  

 

как изменить формат данных при записи в файл?

записывает в кракозяблах нечитаемых :(

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