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

 
wenay:

Задача: Необходимо найти тик вновь появившегося ордера именно по этой ТС не используя магик.
проверить время открытия ордеров и выдрать тот который открыт последним по времени
 
sanyooooook:
проверить время открытия ордеров и выдрать тот который открыт последним по времени


вот что надумал: просто сравнивать все параметры, есть ДЦ где новый ордер будет последним, есть те где момент открытия совпадает с ордером частичного закрытия, вот и буду обробатывать 2 момента.

вопрос думаю закрыт. Спасибо 

 
ToLik_SRGV:
огромное спс, чет я не нашел такой статьи на форуме, если такой инфы действительно нет, думаю стоило бы ее добавить модераторам в соответствующий раздел
 

Каким образом в вернем правом углу можно реализовать надпись:

if (naklon> naklonmax) принтвуглусправа(" тренд вверх, шорт запрещен)

 
Craft:

Люди добрые, сжальтесь - не могу добиться: покупка/продажа после очередного пика сглаженного CCI.

Попробовал объявить второй буфер (мне так понятней), ошибок - нет, журнал - молчит, принт, видимо, как козе баян прилаживаю - ничего не понял.

Во вложении советник целиком. После тестирования на визуализации CCI рисует и в этом и в старом варианте (во вложенном файле заремлен), а сглаженную - нет и соответственно сделки не открываются. 

Старый вариант:

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

Print() вам, для начала нужно поставить сюда:

double c1s[];
   ArrayResize(c1s,PeriodS);
   double c1s_1[];
   ArrayResize(c1s_1,AvgS);
   for(i=1;i<=PeriodS;i++)
   {
   c1s[i]=iCCI(NULL,0,PeriodS,PRICE_TYPICAL,i);
   {
   c1s_1[i]=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,i);
   }
   }

Print("NormalizeDouble(c1b_1[i],4) - ",NormalizeDouble(c1b_1[i],4));
Print("NormalizeDouble(c1b_1[i+2],4) - ",NormalizeDouble(c1b_1[i+2],4));
Print("NormalizeDouble(c1b_1[i+3],4) - ",NormalizeDouble(c1b_1[i+3],4));

if (NormalizeDouble(c1b_1[i],4)<NormalizeDouble(c1b_1[i+2],4)&&NormalizeDouble(c1b_1[i+2],4)>NormalizeDouble(c1b_1[i+3],4))
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
что бы, убедится в том что массив c1b_1[i] пуст, поэтому сравнивая в if нули, понятное дело сделки не открываются.

А нули там от того что, период усреднения в функции iMAOnArray(c1b,0,AvgB,0,MODE_SMA,i) (extern int AvgB=25;) больше чем сам массив c1b, ArrayResize(c1b,PeriodB) (extern int PeriodB=20;), поэтому усреднить он ничего не может.

 
Rossi:

Каким образом в вернем правом углу можно реализовать надпись:

if (naklon> naklonmax) принтвуглусправа(" тренд вверх, шорт запрещен)

int init()
  {
   if(!ObjectCreate("control", OBJ_LABEL, 0, 0, 0))Print("error: can't create text_object! code #",GetLastError());
      else{
            ObjectSet("control", OBJPROP_CORNER, 0 );
            ObjectSet("control",OBJPROP_XDISTANCE,30);
            ObjectSet("control",OBJPROP_YDISTANCE,40);
            ObjectSetText("control", "NO BUY", 18, "Times New Roman", Red);
           }
   return(0);
  }

int start()
  {
if ( naklon> naklonmax )  ObjectSetText("control", "тренд вверх, шорт запрещен", 18, "Times New Roman", Blue);


return(0);
}
скобки посчитай не проверял
 
IgorM:
скобки посчитай не проверял

В деините только б ещё потом почистить окошко 0 наверное надоть бы, чтоб подмести за собой... :)
 
IgorM:
скобки посчитай не проверял


Спасибо, я намудрил, мне надо не печать, а надпись на экране ...

я думал, это в одну строчку делается...

 

В индикаторе Indexes_v8L заменил валюты

"AUDUSD","EURUSD","GBPUSD","NZDUSD","USDCAD","USDCHF","USDJPY"

на

"EURUSD","EURGBP","EURGBP","EURJPY","EURAUD","EURCAD","EURNZD"

исчезла линия  GBP

Где рыть? 

Файлы:
 
Rossi:


Спасибо, я намудрил, мне надо не печать, а надпись на экране ...

я думал, это в одну строчку делается...

Вам и написали как сделать надпись на экране:

if ( naklon> naklonmax )  ObjectSetText("control", "тренд вверх, шорт запрещен", 18, "Times New Roman", Blue);

18 - размер шрифта, Times New Roman - название шрифта, Blue - цвет надписи вашей... Пишите вместо них свои, нужные вам значения...

Все остальные строки - это подготовка графических объектов к выводу их на экран. Без неё ничего не выйдет.

ObjectSet("control", OBJPROP_CORNER, 1 );  // Устанавливает в каком углу окна будет выводиться надпись 0 = лево-верх, 1 = право-верх, 2 и 3 низ
ObjectSet("control",OBJPROP_XDISTANCE,30); // Устанавливает координату X будущей надписи
ObjectSet("control",OBJPROP_YDISTANCE,40); // Устанавливает координату Y будущей надписи
ObjectSetText("control", "NO BUY", 18, "Times New Roman", Red); // Эту строку в init() можете не писать, тогда не будет сразу надписи NO BUY
                                                                // Далее, уже по ходу основной программы в ф-ции start() проверяете условия и
                                                                // при их выполнении выводите строку в уже заранее заданные координаты:
if ( naklon> naklonmax )  ObjectSetText("control", "тренд вверх, шорт запрещен", 18, "Times New Roman", Blue);
 

Либо пишите Comment`ом в левом верхнем углу. Там меньше думать надо...

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