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

 

Так. Какие уж тут скобочки? Я щас словами. По стилю как в учебниках геометрии пишут.

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

 Где  CCI_50S значение индикатора и це це на первом тике;  CCI_50 значение индикатора и це це на нулевом тике  ;


CCI_50S>100&&CCI_50<100  Если индикатор пирисекает линию сто сверху вниз    

                                                                                                                            Или 

CCI_50S>0&&CCI_50<0    Если индикатор пирисекает линию ноль сверху вниз 

                                                                                                                            Или   

CCI_50S>-100&&CCI_50<-100   Если индикатор пирисекает линию минус сто сверху вниз  

                                                                                                                                         Тогда труэ !!!                   

 
Dimka-novitsek:

Так. Какие уж тут скобочки? Я щас словами. По стилю как в учебниках геометрии пишут.

 Где  CCI_50S значение индикатора и це це на первом тике;  CCI_50 значение индикатора и це це на нулевом тике  ;


CCI_50S>100&&CCI_50<100  Если индикатор пирисекает линию сто сверху вниз    

                                                                                                                            Или 

CCI_50S>0&&CCI_50<0    Если индикатор пирисекает линию ноль сверху вниз 

                                                                                                                            Или   

CCI_50S>-100&&CCI_50<-100   Если индикатор пирисекает линию минус сто сверху вниз  

                                                                                                                                         Тогда труэ !!!                   


Скобочки определяют порядок расчета логической переменной. И неудивительно ожидать одно а получать другое
 
TarasBY:

Да! - есть такое дело - скобочки потерял...

- исправился. :)

Скобочки - это, конечно, хорошо... Я их сам учел (в уме добавил). - Это не проблема. Но это, если я правильно понимаю, лишь разный стиль написания?  В чем мой код ошибочен?

Я даже оставил всего 2 линии т.е. 2 условия. И все равно, когда выставляю просто одну линию (т.е. ситуация ни под одни условия не подпадает, т.к. нету 2-го параметра после "и"), и прога уже! начинает выставлять свои значения переменных. Хотя, оснований для этого еще не случилось.

А по стилям - я уже как только не пробовал писать - и по отдельным функциям. И по ифам - для каждого знака равенства отдельный делал. И каких-то 10 других вариантов - принципиально ничего не меняется.

 

Как побороть? В некоторых терминалах перестали сохраняться отчёты по торговле (детализированные с истории и отчёты с тестера в формате хтмл).

В папки терминалов "не лез", ничего не удалял.

Благодарю.

 
Chiripaha:

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

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

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

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

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


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


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


Как линии строите? Где проверяете, в тестере или на демо?
 
Vinin:

Как линии строите? Где проверяете, в тестере или на демо?

Я уже 2 недели пытаюсь это преодолеть - т.е. много чего уже перепробовал (включая написание 3-х вариантов подобного робота - но проблема одинаковая).

Линии выставляю вручную (обычные горизонтальные линии) - Затем запрашиваю цену этих линий - Если цена попадает в диапазон между 2-х линий, то должен срабатывать флаг (покупка или продажа - получается максимально всего 4 варианта флагов на каждую пару линий).

названия линий идентичны названиям переменных только без буквы "р" (обозначающей "прайс").

Проверяю на тестере и на деме - результаты одинаковые.

Для проверки - упростил вариант до минимального - до 2-х пар линий (на покупку и на продажу) - косяк все равно вылазит.

Чем меньше комбинаций линий, тем проблема меньше себя проявляет (но не пропадает - это ложное ощущение складывается). Чем больше вариантов, тем проблема более выпуклая.


PS

Один из вариантов робота (первичный был как раз) при выставлении линии автоматически выставлял 2 доп линии. И тут косяк не вылазил. Но! как только я попытался ставить все линии вручную, то этот косяк стал проявляться. - Т.е. не успел доп линии (уровень - основная линия) выставить, как робот уже начал торговать на свое усмотрение (и в тестере и в демо).

 

Доброго времени суток и удачной торговли всем!

Подскажите плз, башка не варит, новичок..

Суть проблемы:

выставил две отложки

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

 

какой функцией можно прервать/закончить работу эксперта, в случае наступления некоторых условий?

то есть, у меня работает эксперт, но в случае какого либо сбоя(этот момент я уже написал), должна выполниться функция, которая закрывает эксперта и он перестаёт работать и торговать. 

 
Ekburg:

какой функцией можно прервать/закончить работу эксперта, в случае наступления некоторых условий?

то есть, у меня работает эксперт, но в случае какого либо сбоя(этот момент я уже написал), должна выполниться функция, которая закрывает эксперта и он перестаёт работать и торговать. 

Для начала нужно определиться "ЧТО КОНКРЕТНО" должен сделать советник при наступлении "часа пик" - упомянутых условий. Если просто перестать торговать, то можно так: 

bool STOP = false;
int start()
{
    //---- В самом начале кода
    if (STOP) return (0);
    //---- код советника
}
 
TarasBY:

Для начала нужно определиться "ЧТО КОНКРЕТНО" должен сделать советник при наступлении "часа пик" - упомянутых условий. Если просто перестать торговать, то можно так: 


с этим я определился! то есть для завершения работы эксперта достаточно добавить функцию return(0)?
Причина обращения: