Ответ
 
Опции темы
Старый 12.08.2014, 07:41   #2981 (permalink)
Новичок форума
 
Аватар для Zolotai
 
Регистрация: 15.04.2014
Сообщений: 30
Репутация: 5
Zolotai
Сказал(а) спасибо: 12
Поблагодарили 4 раз(а) в 3 сообщениях
Поинты: 34
Сообщение от 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   #2982 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
Т.е. да, пропуск.
А алерт это не пропуск - это алерт )))
matro3 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 12.08.2014, 08:17   #2983 (permalink)
Новичок форума
 
Аватар для Zolotai
 
Регистрация: 15.04.2014
Сообщений: 30
Репутация: 5
Zolotai
Сказал(а) спасибо: 12
Поблагодарили 4 раз(а) в 3 сообщениях
Поинты: 34
Сообщение от matro3 Посмотреть сообщение
Т.е. да, пропуск.
А алерт это не пропуск - это алерт )))
Да алерт та тут причем..????? Вопрос о другом, почему через условие не пропускает. Когда по данному символу есть открытий ордер и не выдает сигналю....
Zolotai вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 12.08.2014, 08:29   #2984 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1962
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 347
Поблагодарили 1,891 раз(а) в 1,068 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Zolotai Посмотреть сообщение
Не понимаю. continue;- выход из цикла? По моему пропуск текущей операции и переход к следующей... то есть переходк следующему ордеру.

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

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

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 12.08.2014, 08:31   #2985 (permalink)
Новичок форума
 
Аватар для Zolotai
 
Регистрация: 15.04.2014
Сообщений: 30
Репутация: 5
Zolotai
Сказал(а) спасибо: 12
Поблагодарили 4 раз(а) в 3 сообщениях
Поинты: 34
Сообщение от 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   #2986 (permalink)
Почётный гражданин
 
Аватар для matro3
 
Регистрация: 18.07.2013
Сообщений: 349
Репутация: 344
matro3 matro3 matro3 matro3
Сказал(а) спасибо: 25
Поблагодарили 340 раз(а) в 143 сообщениях
Поинты: 160
Я же дал уже код, готовый к приминению...
Код:
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   #2987 (permalink)
Новичок форума
 
Аватар для Zolotai
 
Регистрация: 15.04.2014
Сообщений: 30
Репутация: 5
Zolotai
Сказал(а) спасибо: 12
Поблагодарили 4 раз(а) в 3 сообщениях
Поинты: 34
Сообщение от 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   #2988 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1962
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 347
Поблагодарили 1,891 раз(а) в 1,068 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Zolotai Посмотреть сообщение
Спс. Я запутался...
А , что за функция которая покажет текущую цену инструмента?
MarketInfo или SymbolInfoDouble

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

Последний раз редактировалось Zolotai; 12.08.2014 в 10:47.
Zolotai вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 12.08.2014, 10:46   #2990 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от Zolotai Посмотреть сообщение
При модификации ордера ,остаются стрелки. Как от них изюавиться?
Не ставить при модификации.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 12.08.2014, 10:53   #2991 (permalink)
Новичок форума
 
Аватар для Zolotai
 
Регистрация: 15.04.2014
Сообщений: 30
Репутация: 5
Zolotai
Сказал(а) спасибо: 12
Поблагодарили 4 раз(а) в 3 сообщениях
Поинты: 34
Сообщение от AlexeyVik Посмотреть сообщение
Не ставить при модификации.
Я "Green" на ноль изменил. Все равно они есть...
Zolotai вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 12.08.2014, 11:11   #2992 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от Zolotai Посмотреть сообщение
Я "Green" на ноль изменил. Все равно они есть...
В тестере никак не избавишься. Разве что прописать удаление всех объектов.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Zolotai (12.08.2014)
Старый 12.08.2014, 11:16   #2993 (permalink)
Новичок форума
 
Аватар для Zolotai
 
Регистрация: 15.04.2014
Сообщений: 30
Репутация: 5
Zolotai
Сказал(а) спасибо: 12
Поблагодарили 4 раз(а) в 3 сообщениях
Поинты: 34
Как прибавить так, чтобы добавить количество пунктов, начиная с сотых, а не прибалять целое число к целому...

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

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

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 828
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 842 раз(а) в 554 сообщениях
Поинты: 1308
Можно проверять номер счета по условию IsTesting() (не проверять номер счета, когда оно TRUE)
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 16.08.2014, 21:41   #2998 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для 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   #2999 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
SSym.gi_Digits не инициализирована.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.08.2014, 11:44   #3000 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от qqmber Посмотреть сообщение
SSym.gi_Digits не инициализирована.
Да. Не принималось значение выбранного инструмента(Количество знаков его ). Видать удобную библиотек для этого не написать особо...
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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