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

 
w_ersoc:

кто нибудь знает, как можно перевести количество пунктов в валюту?

т.е. если профит в единицах валюты, то надо 50 пунктов перевести в эти единицы.. учитывать плечё надо еще наверное?.. 0_о


профит=лот*пункты*TICK_VALUE
 

oDin48, а вы не думали, что у вас вдруг и ордер открывается, и ошибка где-то проскакивает? тогда и ордер будет открываться, и Vol увеличиваться?

Говорю навскидку, потому что похожие ситуации у меня раньше возникали при программировании на других языках

Попробуйте вывести в окно сообщений номер ошибки и посмотрите, что там

 

gogent, все работало исправно пока я не написал торговые критерии, точнее с другими все было отлично, а именно с этими что-то не так... по этому я не думаю, что дело в коде "открытия ордера"... так же открытия ордера не циклятся, открываются по одному при подаче сигнала... по этому дело либо в условии связаном с Vol либо в условии связаном с VP... Пробую переписать тоже самое другими словами, посмотрю что получится...

Добавлено:

Дело в VP. Что-то в коде ниже не так... он выполняется, как я понимаю, каждый раз когда одна из MA выше другой... т.е. всегда... не работает доп условие? Почему? Вроде Opn_B, Cls_B, Opn_S, Cls_S, работают нормально, не создаются на каждом тике, а VP куда-то в бесконечность лезет...

if ((Opb==0) && (MA_1_t > MA_2_t + Rastvor*Point))           // Если разница между
     {                                          // ..МА 1 и 2 большая
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
      Opb++;                                    // Открытие только одного ордера
      Ops=0;
         if (VKO1>=Ask) {VP=VP*Koff;}           // При прибыли предыдущего умножать на коэф.
         if (VKO1<Ask) {VP=VP*Koff1;}           // При убытке предыдущего умножать на коэф1.
      }
 if ((Ops==0) && (MA_1_t < MA_2_t - Rastvor*Point))           // Если разница между
     {                                          // ..МА 1 и 2 большая
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
      Ops++;                                    // Открытие только одного ордера
      Opb=0;
         if (VKO0<=Bid) {VP=VP*Koff;}           // При прибыли предыдущего умножать на коэф
         if (VKO0>Bid) {VP=VP*Koff1;}           // При убытке предыдущего умножать на коэф1
      }
 
sergeev:

профит=лот*пункты*TICK_VALUE

спасибо! =)

 

извиняюсь, еще один вопрос возник. есть ли простой способ зафиксировать закрытие ордера по тейк профиту?

т.е. допустим есть 3 ордера, и один из них закрылся. как можно просигналить о его закрытии и получить его профит (или убыток)?

 
Вот если я в своём советнике чётко поставил чтоб он работал только по Н4, а во время тестирования/оптимизации оставлю другой период (допустим Н1), то это вроде не повлияет, а?
 
w ersoc, каждый тик(то бишь в start()) проверяй, есть ли закрывшееся по ТП ордера. И кстати, в журнале прописываются все действия советника(или это только при тестировании..?)
 
paladin80, если торговые критерии советника опираются на бары/свечи/среднии и прочее, то, насколько я понимаю, повлияет, если же не опираются, то не повлияет...
 
gogent:
w ersoc, каждый тик(то бишь в start()) проверяй, есть ли закрывшееся по ТП ордера. И кстати, в журнале прописываются все действия советника(или это только при тестировании..?)

сейчас естественно тестирование главнее..

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

 
Был антивирус Ксперского, работал нормально, подошел срок ключа, решил установить Нод 32, установка не удалась, вернее, удалась наполовину, говорит что то не удается установить, теперь не удается и удалить, интерне блокируется через 2-3 минуты работы, что делать, подскажите, пожалуйста.