Всем привет. помогите разобраться с сложившейся ситуацией.
почему в одном случае testF2 при отнимании Buf0[i]=iCCI(NULL,0,8,PRICE_OPEN,i-1)-iCCI(NULL,0,8,PRICE_OPEN,i); все происходит замечательно как нужно,
а в другом случае testF1 при техже действиях Buf0[i]=iMA(NULL,0,8,0,MODE_EMA,PRICE_OPEN,i-1)-iMA(NULL,0,8,1,MODE_SMA,PRICE_OPEN,i); происходит слет последнего бара? почему в случае с iCCI этого непроисходит, а в случае iMA происходит слет бара??????
if ((NormalizeDouble(priceopen+start*Point,Digits)<=Bid)&&(NormalizeDouble(Bid-sl*Point,Digits)>NormalizeDouble(dist*Point,Digits)))
{
sl=NormalizeDouble(Bid-dist*Point,Digits);
Ekburg:
не правильное условие, вы рассчитываете расстояние от цены до котировки выставления ордера, а надо от цены, до текущего стопа!:)
при этом должны быть разные расчёты для лонгов и для шортов;) а то в одних случаях будет расчёт минусовой, в другом положительный. соответственно в одних направлениях трейлинг работать будет, а в других нет..
тут нужно два блока, если шорт стоит, то направляет в первый блок, если лонг - во-второй, после идут расчёты, проверки и сам трейлинг
все равно ничего не выходит... пробую только лонг, перепробовал уже столько всего, что не помню что делал что нет))
Есть программа, которая открывает два ордера на покупку или на продажу, скажем по EURAUD и AUDUSD. Программа работает исключительно, если в терминале по этим или другим парам не открыты ордера. Если хотя бы в один ордер в терминале присутствует, то сделки не открываются. Вопрос - как запрограммировать открытие ордеров независимо от того, есть ли в терминале открытые ордера или нет? Заранее благодарен за ответ.
Есть программа, которая открывает два ордера на покупку или на продажу, скажем по EURAUD и AUDUSD. Программа работает исключительно, если в терминале по этим или другим парам не открыты ордера. Если хотя бы в один ордер в терминале присутствует, то сделки не открываются. Вопрос - как запрограммировать открытие ордеров независимо от того, есть ли в терминале открытые ордера или нет? Заранее благодарен за ответ.
Всем привет. помогите разобраться с сложившейся ситуацией.
почему в одном случае testF2 при отнимании Buf0[i]=iCCI(NULL,0,8,PRICE_OPEN,i-1)-iCCI(NULL,0,8,PRICE_OPEN,i); все происходит замечательно как нужно,
а в другом случае testF1 при техже действиях Buf0[i]=iMA(NULL,0,8,0,MODE_EMA,PRICE_OPEN,i-1)-iMA(NULL,0,8,1,MODE_SMA,PRICE_OPEN,i); происходит слет последнего бара? почему в случае с iCCI этого непроисходит, а в случае iMA происходит слет бара??????
можно ли это както исправить?
Buf0[i]=iMA(NULL,0,8,0,MODE_EMA,PRICE_OPEN,i-1)-iMA(NULL,0,8,1,MODE_SMA,PRICE_OPEN,i);
для ема в бессконечность вас кинет при расчете -1 бара, когда i=0
лучше так:
Buf0[i]=iMA(NULL,0,8,0,MODE_EMA,PRICE_OPEN,i)-iMA(NULL,0,8,1,MODE_SMA,PRICE_OPEN,i+1);
и если надо сдвиг как в приведенном вами варианте на 1-н бар вправо, лучше реализуйте его явно в инит через SetIndexShift(0,1);
Buf0[i]=iMA(NULL,0,8,0,MODE_EMA,PRICE_OPEN,i-1)-iMA(NULL,0,8,1,MODE_SMA,PRICE_OPEN,i);
для ема в бессконечность вас кинет при расчете -1 бара, когда i=0
лучше так:
Buf0[i]=iMA(NULL,0,8,0,MODE_EMA,PRICE_OPEN,i)-iMA(NULL,0,8,1,MODE_SMA,PRICE_OPEN,i+1);
и если надо сдвиг как в приведенном вами варианте на 1-н бар вправо, лучше реализуйте его явно в инит через SetIndexShift(0,1);
спасибо Вам большое, но Я все прекрасно это понимаю, а вот почему с iCCI, это прокатывает а с iMA нет???
не правильное условие, вы рассчитываете расстояние от цены до котировки выставления ордера, а надо от цены, до текущего стопа!:)
при этом должны быть разные расчёты для лонгов и для шортов;) а то в одних случаях будет расчёт минусовой, в другом положительный. соответственно в одних направлениях трейлинг работать будет, а в других нет..
тут нужно два блока, если шорт стоит, то направляет в первый блок, если лонг - во-второй, после идут расчёты, проверки и сам трейлинг
все равно ничего не выходит... пробую только лонг, перепробовал уже столько всего, что не помню что делал что нет))
спасибо Вам большое, но Я все прекрасно это понимаю, а вот почему с iCCI, это прокатывает а с iMA нет???
и там и там ошибки были просто с сси они не наглядные, в виду особенности расчетов,
а применения МА, в частности ЕМА, как я думаю, приводит к их наглядности.
все равно ничего не выходит... пробую только лонг, перепробовал уже столько всего, что не помню что делал что нет))
вместо sl поставьте OrderStopLoss()
Так и будете на подсказках жить?
Вам ведь теперь не нужны подсказки? :)
Есть программа, которая открывает два ордера на покупку или на продажу, скажем по EURAUD и AUDUSD. Программа работает исключительно, если в терминале по этим или другим парам не открыты ордера. Если хотя бы в один ордер в терминале присутствует, то сделки не открываются. Вопрос - как запрограммировать открытие ордеров независимо от того, есть ли в терминале открытые ордера или нет? Заранее благодарен за ответ.
Есть программа, которая открывает два ордера на покупку или на продажу, скажем по EURAUD и AUDUSD. Программа работает исключительно, если в терминале по этим или другим парам не открыты ордера. Если хотя бы в один ордер в терминале присутствует, то сделки не открываются. Вопрос - как запрограммировать открытие ордеров независимо от того, есть ли в терминале открытые ордера или нет? Заранее благодарен за ответ.
Убрать проверку
Убрать проверку