Ответ
 
Опции темы
12.08.2014, 07:41
Аватар для Zolotai
Zolotai Новичок форума
Регистрация: 15.04.2014 / Сообщений: 30
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от matro3 Посмотреть сообщение
Код:
for (int i=0; i<cnt; i++)
   { 
    
     if (OrderSymbol() != Symbol())
         Alert('1');
         continue;

    }
Сначала сигнал, а потом выход из цикла

Не понимаю. continue;- выход из цикла? По моему пропуск текущей операции и переход к следующей... то есть переходк следующему ордеру.

Почему так не пропускает?

Код HTML:
         if (OrderSymbol() == Symbol()){
           Alert('1');
         
         }
Как узнать текущую цену инструмента? Что за функция?

Последний раз редактировалось Zolotai; 12.08.2014 в 07:45.
Zolotai вне форума Ответить с цитированиемОтветить с цитированием  
12.08.2014, 08:09
Аватар для matro3
matro3 Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Т.е. да, пропуск.
А алерт это не пропуск - это алерт )))
matro3 на форуме Ответить с цитированиемОтветить с цитированием  
12.08.2014, 08:17
Аватар для Zolotai
Zolotai Новичок форума
Регистрация: 15.04.2014 / Сообщений: 30
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от matro3 Посмотреть сообщение
Т.е. да, пропуск.
А алерт это не пропуск - это алерт )))
Да алерт та тут причем..????? Вопрос о другом, почему через условие не пропускает. Когда по данному символу есть открытий ордер и не выдает сигналю....
Zolotai вне форума Ответить с цитированиемОтветить с цитированием  
12.08.2014, 08:29
Регистрация: 13.03.2009 / Сообщений: 2,320
Поблагодарили 1,944 раз(а) / Репутация: 2019
Сообщение от Zolotai Посмотреть сообщение
Не понимаю. continue;- выход из цикла? По моему пропуск текущей операции и переход к следующей... то есть переходк следующему ордеру.

Почему так не пропускает?

Код HTML:
         if (OrderSymbol() == Symbol()){
           Alert('1');
         
         }
Как узнать текущую цену инструмента? Что за функция?
OrderSymbol() работает если предварительно выбрать ордер.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar вне форума Ответить с цитированиемОтветить с цитированием  
12.08.2014, 08:31
Аватар для Zolotai
Zolotai Новичок форума
Регистрация: 15.04.2014 / Сообщений: 30
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от Ugar Посмотреть сообщение
OrderSymbol() работает если предварительно выбрать ордер.
То есть я понимаю нужно прописать так.

Код HTML:
      for (int i=0; i<cnt; i++)  {
      
       if(OrderSelect(cnt,SELECT_BY_POS) && OrderSymbol()==Symbol())
            Alert('1');


       }
Все равно не выдает алерт.Можно кодик, готовый с иправленными ошибками. Уже 2-5 часов вокруг да около и никаких сдвигов..
Zolotai вне форума Ответить с цитированиемОтветить с цитированием  
12.08.2014, 09:21
Аватар для matro3
matro3 Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Я же дал уже код, готовый к приминению...
Код:
int cnt = OrdersTotal();
  
   for (int i=0; i<cnt; i++)
   {
      if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
      if (OrderSymbol() != Symbol()) continue;

      Alert('1');
   }
matro3 на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Zolotai (12.08.2014)
12.08.2014, 09:30
Аватар для Zolotai
Zolotai Новичок форума
Регистрация: 15.04.2014 / Сообщений: 30
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от matro3 Посмотреть сообщение
Я же дал уже код, готовый к приминению...
Код:
int cnt = OrdersTotal();
  
   for (int i=0; i<cnt; i++)
   {
      if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
      if (OrderSymbol() != Symbol()) continue;

      Alert('1');
   }
Спс. Я запутался...
А , что за функция которая покажет текущую цену инструмента?

OrderModify(OrderTicket(), 1.32, 0 , 0, 0, Green);

Выдает следующее
return value of 'OrderModify' should be checked jjjjj.mq4 33 15

Последний раз редактировалось Zolotai; 12.08.2014 в 09:46.
Zolotai вне форума Ответить с цитированиемОтветить с цитированием  
12.08.2014, 09:47
Регистрация: 13.03.2009 / Сообщений: 2,320
Поблагодарили 1,944 раз(а) / Репутация: 2019
Сообщение от Zolotai Посмотреть сообщение
Спс. Я запутался...
А , что за функция которая покажет текущую цену инструмента?
MarketInfo или SymbolInfoDouble

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Zolotai (12.08.2014)
12.08.2014, 10:37
Аватар для Zolotai
Zolotai Новичок форума
Регистрация: 15.04.2014 / Сообщений: 30
Поблагодарили 4 раз(а) / Репутация: 5
При модификации ордера ,остаются стрелки. Как от них избавиться?
Такой вот вопрос.
Допустим мне необходимо передвинуть ордер на 20 пунктов выше. Проблема все в том, что у некоторых инструментах есть сотые. Так вот как прибывать двадцать пунктов к сотых , а не к целым?

Последний раз редактировалось Zolotai; 12.08.2014 в 10:47.
Zolotai вне форума Ответить с цитированиемОтветить с цитированием  
12.08.2014, 10:46
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,710 раз(а) / Репутация: 3706
Сообщение от Zolotai Посмотреть сообщение
При модификации ордера ,остаются стрелки. Как от них изюавиться?
Не ставить при модификации.
AlexeyVik на форуме Ответить с цитированиемОтветить с цитированием  
12.08.2014, 10:53
Аватар для Zolotai
Zolotai Новичок форума
Регистрация: 15.04.2014 / Сообщений: 30
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от AlexeyVik Посмотреть сообщение
Не ставить при модификации.
Я "Green" на ноль изменил. Все равно они есть...
Zolotai вне форума Ответить с цитированиемОтветить с цитированием  
12.08.2014, 11:11
Аватар для AlexeyVik
AlexeyVik Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,710 раз(а) / Репутация: 3706
Сообщение от Zolotai Посмотреть сообщение
Я "Green" на ноль изменил. Все равно они есть...
В тестере никак не избавишься. Разве что прописать удаление всех объектов.
AlexeyVik на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Zolotai (12.08.2014)
12.08.2014, 11:16
Аватар для Zolotai
Zolotai Новичок форума
Регистрация: 15.04.2014 / Сообщений: 30
Поблагодарили 4 раз(а) / Репутация: 5
Как прибавить так, чтобы добавить количество пунктов, начиная с сотых, а не прибалять целое число к целому...

Последний раз редактировалось Zolotai; 12.08.2014 в 11:33.
Zolotai вне форума Ответить с цитированиемОтветить с цитированием  
12.08.2014, 13:29
Аватар для matro3
matro3 Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
умножай на Point
например:
Код:
OrderOpenPrice()+LevelWLoss*Point
matro3 на форуме Ответить с цитированиемОтветить с цитированием  
12.08.2014, 15:25
Аватар для Zolotai
Zolotai Новичок форума
Регистрация: 15.04.2014 / Сообщений: 30
Поблагодарили 4 раз(а) / Репутация: 5
Как так прописать, чтобы робот. Начал работать как только нажмешь, кнопку(автоторговля).

Я вот перенес код в функцию(тот, что был в start()). Как вызвать, откуда?
Так работает только при каждой новой цене...
Zolotai вне форума Ответить с цитированиемОтветить с цитированием  
13.08.2014, 13:04
Аватар для Andy200577
Andy200577 Новичок форума
Регистрация: 20.06.2012 / Сообщений: 57
Поблагодарили 8 раз(а) / Репутация: 9
Всем добрый день.
Хочу задать один вопрос по MQL. Я робота хочу привязать к номеру счета (не важно демо или реал), как делать это понятно, но проблема в том, что при этом, если номер счета не тот, то не работает робот и в тестере стратегий. Скажите можно ли робота привязать к номеру счета для торговли в режиме реального времени, но чтобы в тестере стратегий робот тестировался всегда при любом счёте или это невозможно?
Спасибо.
Andy200577 вне форума Ответить с цитированиемОтветить с цитированием  
13.08.2014, 13:12
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,016
Поблагодарили 855 раз(а) / Репутация: 841
Можно проверять номер счета по условию IsTesting() (не проверять номер счета, когда оно TRUE)
ansol на форуме Ответить с цитированиемОтветить с цитированием  
16.08.2014, 21:41
Аватар для hoz
hoz Активный участник
Регистрация: 01.04.2011 / Сообщений: 530
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Сегодня я заметил, что у меня функция, которая всегда работала. Щяс не работает. Функция библиотечная. В библиотеке она размещена, как я понимаю верно. Вот так:

PHP код:
#property library
#property copyright "hoz"
#property link      ""
#property version   "1.00"
#property strict

#include    <HOZ_Code\Structures\MarketData.mqh>

//=========================================================================================================================================
// 1.1a Нормализация числа с плавающей запятой по Digits. =================================================================================
double ND (double vexport
{
    return (
NormalizeDouble (vSSym.gi_Digits));
}
// --- ДРУГИЕ ФУНКЦИИ ДАЛЬШЕ 

Библиотека расположена в папке: \1FC724C8C211BFE8ECF8B599A855301E\MQL4\Libraries\ Т.е. там где и нужно.

Вызываю её в эксперте так:

PHP код:
#import     "LDataConvertion.ex4"
   
double ND (double v);
   
double ND0 (double v);
   
string DToS (double v);
   
string IToS (int v);
   
string DToSByLots(double v);
#import 

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

PHP код:
void GetTPiSL (doublefd_SLdoublefd_TPint fi_Type)
{
   if (
fi_Type == OP_BUY)
   {
      if (
id_SL != 0)
          
fd_SL ND (Bid id_SL SSym.gd_Pt);
          Print (
"GetTPiSL: fd_SL = "fd_SL);
          Print (
"GetTPiSL: ND (fd_SL) = "ND (fd_SL));
      if (
id_TP != 0)
          
fd_TP ND (Ask id_TP SSym.gd_Pt);
          Print (
"GetTPiSL: fd_TP = "fd_TP);
          Print (
"GetTPiSL: ND (fd_TP) = "ND (fd_TP));
   }
   if (
fi_Type == OP_SELL)
   {
      if (
id_SL != 0)
          
fd_SL Ask id_SL SSym.gd_Pt;
          Print (
"GetTPiSL: fd_SL = "fd_SL);
          Print (
"GetTPiSL: ND (fd_SL) = "ND (fd_SL));
/*          fd_SL = ND (Ask + id_SL * SSym.gd_Pt);
          Print ("GetTPiSL: fd_SL = ", fd_SL);*/
      
if (id_TP != 0)
          
fd_TP Bid id_TP SSym.gd_Pt;
          Print (
"GetTPiSL: fd_TP = "fd_TP);
          Print (
"GetTPiSL: ND (fd_TP) = "ND (fd_TP));
/*          fd_TP = ND (Bid - id_TP * SSym.gd_Pt);
          Print ("GetTPiSL: fd_TP = ", fd_TP);*/
   
}


Распринтовал всё, чтоб было видно, что возвращается после использования библиотечной функции ND() не то, что получается на самом деле.
Как такое может быть? В чём причина? Библиотеки нынче перестали работать? Есть какой-то нюанс?
Вот лог:

PHP код:
2014.08.16 23:40:00.686    2014.06.20 00:05  RSI EURUSD,M5GetTPiSLND (fd_TP) = 1.0
2014.08.16 23
:40:00.686    2014.06.20 00:05  RSI EURUSD,M5GetTPiSLfd_TP 1.35959
2014.08.16 23
:40:00.686    2014.06.20 00:05  RSI EURUSD,M5GetTPiSLND (fd_SL) = 0.0
2014.08.16 23
:40:00.686    2014.06.20 00:05  RSI EURUSD,M5GetTPiSLfd_SL 0.0
2014.08.16 23
:40:00.686    2014.06.20 00:05  RSI EURUSD,M5fi_signal == SIGNAL_SELL
2014.08.16 23
:40:00.686    2014.06.20 00:05  RSI EURUSD,M5SSym.gi_Digits 5
2014.08.16 23
:40:00.686    2014.06.20 00:05  RSI EURUSD,M5GetTradeSignal Input 
hoz вне форума Ответить с цитированиемОтветить с цитированием  
17.08.2014, 07:29
Аватар для qqmber
qqmber Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
SSym.gi_Digits не инициализирована.
qqmber вне форума Ответить с цитированиемОтветить с цитированием  
17.08.2014, 11:44
Аватар для hoz
hoz Активный участник
Регистрация: 01.04.2011 / Сообщений: 530
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
SSym.gi_Digits не инициализирована.
Да. Не принималось значение выбранного инструмента(Количество знаков его ). Видать удобную библиотек для этого не написать особо...
hoz вне форума Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 16:30. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO