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

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

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

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


       }
Все равно не выдает алерт.Можно кодик, готовый с иправленными ошибками. Уже 2-5 часов вокруг да около и никаких сдвигов..
12.08.2014, 09:21
Аватар для matro3
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');
   }
12.08.2014, 09:30
Аватар для Zolotai
Zolotai Zolotai вне форума Новичок форума
Регистрация: 15.04.2014 / Сообщений: 30
Поблагодарили 4 раз(а) / Репутация: 5
Я же дал уже код, готовый к приминению...
Код:
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.
12.08.2014, 09:47
Регистрация: 13.03.2009 / Сообщений: 2,326
Поблагодарили 1,945 раз(а) / Репутация: 2018
Спс. Я запутался...
А , что за функция которая покажет текущую цену инструмента?
MarketInfo или SymbolInfoDouble
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
12.08.2014, 10:37
Аватар для Zolotai
Zolotai Zolotai вне форума Новичок форума
Регистрация: 15.04.2014 / Сообщений: 30
Поблагодарили 4 раз(а) / Репутация: 5
При модификации ордера ,остаются стрелки. Как от них избавиться?
Такой вот вопрос.
Допустим мне необходимо передвинуть ордер на 20 пунктов выше. Проблема все в том, что у некоторых инструментах есть сотые. Так вот как прибывать двадцать пунктов к сотых , а не к целым?

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

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

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

Регистрация: 22.04.2010 / Сообщений: 2,021
Поблагодарили 856 раз(а) / Репутация: 842
Можно проверять номер счета по условию IsTesting() (не проверять номер счета, когда оно TRUE)
16.08.2014, 21:41
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 531
Поблагодарили 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 
17.08.2014, 07:29
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
SSym.gi_Digits не инициализирована.
17.08.2014, 11:44
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 531
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
SSym.gi_Digits не инициализирована.
Да. Не принималось значение выбранного инструмента(Количество знаков его ). Видать удобную библиотек для этого не написать особо...
Ответить

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


Опции темы

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

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



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


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