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

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

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

спасибо

[Deleted]  
на каждую ставить свой стоп при достижении 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:

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

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

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