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

 


Большое вам спасибо. Swan
 

Подскажите пожалуйста я открываю ордер

OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, oSL, oTP, "", ExpertID, 0, Red)

если сработал стоп лоcc то открыть удвоеный лот при следующем открытиии ордера который происходит на автомате

 
vik-777 >>:

Подскажите пожалуйста я открываю ордер

OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, oSL, oTP, "", ExpertID, 0, Red)

если сработал стоп лоcc то открыть удвоеный лот при следующем открытиии ордера который происходит на автомате


Вот эти строки в самом начале функции СТАРТ поставь и по переменной _SL[0] сможешь определять чем закончилась прошлая сделка. остальное дело техники. переменная _SL[0] и Tic объявлены как int

if (OrderSelect(Tic,SELECT_BY_TICKET)==true)
  {
  if (OrderComment()=="[sl]")_SL[0]=-1;
  if (OrderComment()=="[tp]")_SL[0]=1;
  }

 

Проблема.

Есть советник. Если переменные Lot, Porog, Otstup, SL, TP задаются в "теле" программы, то советник работает. Если эти же переменный сделать "extern" (задавать из через настройки), то советник не работает (в "тело" советника эти переменные имеют значение Нулей).

В чем может быть проблема? Где искать решение?

/*
extern double Lot = 0.1;    

extern double Porog = 5.0;  
extern double Otstup = 5.0; 

extern double SL = 5.0; 
extern double TP = 15.0; 
*/

int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }

int start()
  {
  int MagicNumber = 8; 
  int ticket;
  int err;
  int q=0;

double Lot = 0.1;    
double Porog = 5.0;  
double Otstup = 5.0; 
double SL = 5.0; 
double TP = 15.0; 
 

Подскажите пожалуйста функцию для реализации вывода диалогового окна, где можно было бы задать значения переменной.

Например, есть скрипт buy(покупка с установленными Сл и Тп), когда его запускаешь, вывелось диалоговое окно, где можно указать, например, размер лота, далее нажал Ок и ордер исполнился!

Спасибо!

 

Уважаемые профи, подскажите...

В своем индикаторе использую текст, который выводит данные о значении кривой индикатора на график

{ObjectCreate("P"+Time[ai],OBJ_TEXT,0,Time[ai],High[ai]+Label);
ObjectSetText("P"+Time[ai]," "+DoubleToStr(HL,2),7,"Arial",Black);}
Для того, чтобы текст не налезал на кривую, приходиться сдвигать его на параметр Label. Но при переходе на другой период или увеличение/уменьшение графика изменяется шкала графика, и приходиться редактировать по новой. Можно ли сдвиг текста задать иначе, например в пикселях экрана?
 
kon12 писал(а) >>

Уважаемые профи, подскажите...

В своем индикаторе использую текст, который выводит данные о значении кривой индикатора на график

Для того, чтобы текст не налезал на кривую, приходиться сдвигать его на параметр Label. Но при переходе на другой период или увеличение/уменьшение графика изменяется шкала графика, и приходиться редактировать по новой. Можно ли сдвиг текста задать иначе, например в пикселях экрана?

Мoжно использовать

OBJ_LABEL 23 Текстовая метка. Не использует координат. Для установки координат, задаваемых в пикселях относительно угла привязки (свойства OBJPROP_CORNER, OBJPROP_XDISTANCE, OBJPROP_YDISTANCE) используется функция ObjectSet(). Для изменения текста используется функция ObjectSetText()

 
Не совсем понимаю как? Прикрепляю рисунок индикатора. Дело в том, что текст привязан к конкретным точкам индикатора.
 
kon12 писал(а) >>
Не совсем понимаю как? Прикрепляю рисунок индикатора. Дело в том, что текст привязан к конкретным точкам индикатора.

Тогда надо Label делать динамический. Для каждого таймфрейма свой. Один раз в инит забить и забыть. Но сперва подобрать надо.

 
kon12 >>:
Можно ли сдвиг текста задать иначе, например в пикселях экрана?

Самый правильный ответ -- "нет".

Причина обращения: