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

 
CYBOPOB:
Привет всем! Кто может подсказать? Как в цене отложенного ордера на Buy указать цену  открытия относительно МА, а не цены Ask. Например свеча закрылась около МА, на 7пунктов  ниже или выше МА, а цена открытия ордера фиксирована и должна быть МА+28р..? Заранее спасибо.

Цена установки отложенного ордера OP_BUYSTOP:

double PriceSet = NormalizeDouble(Цена МАшки+28*Point, Digits);

Далее нужно проверить цену установки на разрешённую дистанцию по StopLevel (OpenPrice-Ask StopLevel), то есть:

if (NormalizeDouble(Ask+StopLevel*Point-PriceSet, Digits)>0) PriceSet=Ask+StopLevel*Point;

Если цена установки меньше, чем Ask+разрешённая дистанция установки ордера, то сделать цену установки равной разрешённой дистанции
(тут могут быть вариации, в зависимости от того, что же вам нужно на самом деле)

StopLevel здесь:

MarketInfo(Symbol(),MODE_STOPLEVEL);

PriceSet - цена установки отложенного ордера BuyStop

Как-то так...

 
Как получить хэндл процесса (эксперта, скрипта, индикатора) с самого эксперта (скрипта, индикатора)?
 

 Как из открытого ордера узнать время открытия ( в секундах) ??

 Спасибо за ответы)
 
yellownight:
 Как из открытого ордера узнать время открытия ( в секундах) ??

// до этого где-то OrderSelect
TimeToStr(OrderOpenTime(), TIME_SECONDS);// оно?
gyfto:
Как получить хэндл процесса (эксперта, скрипта, индикатора) с самого эксперта (скрипта, индикатора)?


Так пойдёт?

#import "kernel32.dll"
int GetModuleHandleA (string lpModuleName);//возвращает хэндл процесса; если lpModuleName=NULL то - текущего
#import

string lpModuleName;// неинициализированная строка содержит только /0, т.е. NULL
int hInstance;// передадим в CreateWindowExA

hInstance=GetModuleHandleA(lpModuleName);// аналогично GetModuleHandleA(NULL)
 
TarasBY:
Я не в теме: вызов из индикатора самого себя - оригинально!!!
"Индикатор Ut-Fast осцилляторного типа, прототип знаменитого Ultra_Trend...."
Оба этих известных индикатора используют вызов индикатора из самого себя.

Интересно было бы получить пояснения, если кто в курсе.

К сожалению, легальных кодов индикаторов у меня нет.
 
gyfto:
yellownight:
 Как из открытого ордера узнать время открытия ( в секундах) ??

// до этого где-то OrderSelect
TimeToStr(OrderOpenTime(), TIME_SECONDS);// оно?


Так пойдёт?

 


Вас просили в секундах, а вы в строку преобразовали
 
Vinin:

Вас просили в секундах, а вы в строку преобразовали


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

 Можно получить как остаток от деления datetime на 60:

int sec;// как по заказу
sec=OrderOpenTime()%60;// остаток от деления на 60
//ну и там дальше sec по назначению.

 datetime это int, так что проблем при компиляции возникнуть не должно...

 
granit77:
"Индикатор Ut-Fast осцилляторного типа, прототип знаменитого Ultra_Trend...."
Оба этих известных индикатора используют вызов индикатора из самого себя.

Интересно было бы получить пояснения, если кто в курсе.

К сожалению, легальных кодов индикаторов у меня нет.

У меня, к сожалению, тоже. Глянул то, что оказалось под рукой, и, что сразу бросилось в глаза - эта конструкция:

   int li_28 = key;
   if (li_28 == 34562458) loadJMAJMA();
   else {
   //---- какой-то код
            for (int li_40 = Len; li_40 <= Len + Progression * Sensitivity; li_40 += Progression) {
               g_icustom_572 = iCustom(NULL, 0, "ULTRA_TREND_VER2", 34562458, li_40, bars, X_Filtr, 0, l_index_36);
               g_icustom_580 = iCustom(NULL, 0, "ULTRA_TREND_VER2", 34562458, li_40, bars, X_Filtr, 0, l_index_36 + 1);
            }

Ввёл во входные параметры индикатора упомянутый в условиях ключ: 34562458. Вот картинки обоих вариантов:

 

Я предполагаю, что индикатор работает в двух режимах:

  1. Расчёт JMAJMA;
  2. Сам осциллятор.

Вызов индикатором "самого себя" осуществляется в 1-ом режиме для расчёта JMAJMA, а затем, на основании этих расчётов рассчитывается осциллятор. Оригинально! Таким приёмом можно увеличить количество индикаторных буферов для расчётов, не забывая при этом, что для рисования ограничение останется.

 
Подскажите пожалуйста можно ли в тестере стратегий изменить кредитное плече. хочу по максимуму подогнать советник под свой депозит но проблема в том что в ДЦ плече 1:500 а если в советнике прописать
Print(" Баланс счета = ",AccountBalance(), " плечо 1:",AccountLeverage());
то показывает что плече 1:100? как его увеличить? нужно для того чтобы более точно рассчитывать залог средств.
 
увеличьте залоговую сумму в нужное количество раз, и будет вам счастье.
Причина обращения: