[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 757

 
artmedia70:
Вам нужен профит общий - всех открытых позиций или на каждую ставить свой стоп при достижении 20 пп прибыли?
по идеи будет одновременно открыта только одна позиция ну сответственно по её профиту и выставлять стоп
 

Привет. Есть такая стратегия арбитраж, она что идеальна? Т.е. по ней нереально проиграть или все таки цена не всегда доходит до нужного уровня?

спасибо

 
на каждую ставить свой стоп при достижении 20 пп прибыли
 

Что то я опять делаю не так :(

Почему не сравнивает?

if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(230),10,"Wingdings",SymbolSellColor);
      Print("Ошибка при вызове sig_nal201 1:",GetLastError());}
   else if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(228),10,"Wingdings",SymbolBuyColor);
      Print("Ошибка при вызове sig_nal201 2:",GetLastError());}
   else {ObjectSetText("sig_nal201",CharToStr(224),10,"Wingdings",SymbolBasisColor);
      Print("Ошибка при вызове sig_nal201 3:",GetLastError());}
Лишнее закомментировал,  сравниваю 2 значения - всегда последний else рисуется...
 
profitinvesting:
на каждую ставить свой стоп при достижении 20 пп прибыли

У Игоря Кима есть функция, которая при заданном кол-ве пунктов прибыли выставляет стоп на уровень безубытка (его тоже можно задать):

Функция MovingInWL()

 
Abzasc:

Что то я опять делаю не так :(

Почему не сравнивает?

Лишнее закомментировал, сравниваю 2 значения - всегда последний else рисуется...

Интересно... ObjectFind(); возвращает номер подокна графика, на котором найден данный объект:

Поиск объекта с указанным именем. Функция возвращает индекс окна, которому принадлежит искомый объект. В случае неудачи функция вернет -1. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError(). Нумерация подокон графика (если на графике есть подокна с индикаторами) начинается с 1. Главное окно графика есть всегда и имеет индекс 0.

А вы что с чем сравниваете?

(NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))

Мне данная конструкция кажется странноватой... Зачем нормализовать номер подокна (int), да ещё и в double преобразованный, да ещё и ф-цией StrToDouble() ?

 
Abzasc:

Почему не сравнивает?   

Может, потому что получаю имя объекта, а не значение? Тогда как правильно получить значение? Запутался, похоже.
 
artmedia70:

Интересно... ObjectFind(); возвращает номер подокна графика

:) я щас тоже справку читал :)

Есть текст. объекты, мне надо их сравнить (числа). Как?

upgr одним индикатором нарисована таблица, другому надо ее обсчитать. 

 
Abzasc:
Может, потому что получаю имя объекта, а не значение? Тогда как правильно получить значение? Запутался, похоже.
У вас сравниваются номера подокон, в котором начерчены объекты. Если в одном, то ф-ция ObjectFind(); возвращает номер этого окна и он будет одинаковым для двух сравниваемых значений. Таким образом вы сравниваете номера окон. А скорее всего одного и того же окна с самим собою...
 
Abzasc:

:) я щас тоже справку читал :)

Есть текст. объекты, мне надо их сравнить (числа). Как?

Числа чего? Конкретизировать как-то можно?
Причина обращения: