Ответить
10.10.2012, 07:32
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Подскажите пожалуйста, как заставить советника работать на счете ECN (Альпари). На NDD и на стандарте у других дц работает без проблем.
Нужно сделать так что бы ордера открывались без стопов и тейков, а стопы и тейки добавлять потом, модификацией ордера.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
10.10.2012, 09:45
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 532
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
При выводе на печать параметра OBJPROP_ANGLE всегда выдаётся следующее не зависимо от реального угла:

PHP код:
2012.10.09 17:44:53    AngleByMa AUDJPY.5,M5OBJPROP_ANGLE 13 

Я не верно написал, исправить уже нет возможности. Вот что я выводил вообще на печать. и вообще тот участок кода:

PHP код:
    ObjectCreate("trendLine",OBJ_TREND,0,iTime(Symbol(),maTF,shiftBarsBack2),point2OfMa,iTime(Symbol(),maTF,shiftBarsBack1),point1OfMa);
   
// ObjectCreate("hLne",OBJ_HLINE,point2OfMa,0);
    
ObjectSet("trendLine",OBJPROP_COLOR,Black);
    
ObjectSet("trendLine",OBJPROP_WIDTH,4);
    
ObjectSet("trendLine",OBJPROP_RAY,false);
    
WindowRedraw();
    
double angle ObjectGet("trendLine",OBJPROP_ANGLE);
    Print(
"angle: ",angle); 

На выходе постоянно 0:


Код:
2012.10.10 11:43:03	AngleByMa AUDJPY.5,M5: angle: 0
2012.10.10 11:43:03	AngleByMa AUDJPY.5,M5: initialized

Почему не возвращается значение угла?
10.10.2012, 10:47
Аватар для 3Nymous
3Nymous 3Nymous вне форума Активный участник
Регистрация: 03.10.2011 / Сообщений: 279
Поблагодарили 123 раз(а) / Репутация: 126
Почему не возвращается значение угла?
хелп надо внимательнее читать...
это свойство только для объекта OBJ_TRENDBYANGLE
10.10.2012, 12:08
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 532
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
хелп надо внимательнее читать...
это свойство только для объекта OBJ_TRENDBYANGLE
Так я уже пробывал тоже. Если в коде:
PHP код:
ObjectCreate("trendLine",OBJ_TRENDBYANGLE,0,iTime(Symbol(),maTF,shiftBarsBack2),pointOfMaLast,iTime(Symbol(),maTF,shiftBarsBack1),pointOfMaCurr); 

Заменить OBJ_TREND на OBJ_TRENDBYANGLE, то отрисовывается вообще какая-то чушь, почти горизонтально всегда. И как ни крути, ничего не меняется.







В журнале тоже постоянно нули, как видно на графике. Координаты 2 там привязаны к машке, а на графике они вообще непонятно где...
10.10.2012, 12:25
Аватар для 3Nymous
3Nymous 3Nymous вне форума Активный участник
Регистрация: 03.10.2011 / Сообщений: 279
Поблагодарили 123 раз(а) / Репутация: 126
Заменить OBJ_TREND на OBJ_TRENDBYANGLE, то отрисовывается вообще какая-то чушь, почти горизонтально всегда. И как ни крути, ничего не меняется.
теперь читай с какими параметрами создавать OBJ_TRENDBYANGLE...

еще подсказка...
угол, вещь относительная, если линия привязана к двум точкам - поменял масштаб, и угол изменился )
а вообще, вспоминай геометрию, школьный курс "как найти угол прямоугольного треугольника"
10.10.2012, 13:56
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 532
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
теперь читай с какими параметрами создавать OBJ_TRENDBYANGLE...
Читал, и не один раз читал..



OBJ_TRENDBYANGLE Трендовая линия по углу. Использует 2 координаты, либо первую координату и угол. Для установки угла линии (свойство OBJPROP_ANGLE) используется функция ObjectSet()

Первый вариант построения по 2 координатам. Я так и сделал. Вот последний вариант:

PHP код:
 ObjectCreate("trendLine",OBJ_TRENDBYANGLE,0,Time[shiftBarsBack2],pointOfMaLast,Time[shiftBarsBack1],pointOfMaCurr); 

Что не так? Всё по документации... Ведь там сказано: Трендовая линия по углу. Использует 2 координаты, либо первую координату и угол. Я выбрал первый вариант по 2 координатам:Использует 2 координаты

а вообще, вспоминай геометрию, школьный курс "как найти угол прямоугольного треугольника"

Об этом я тоже думал. Через тот же тангенс. Но для этого нам нужно знать катет и гипотенузу. А это уже откуда взять? Да и в чём их измерить? Ведь это величины разного происхождения.. цена и время.


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

Мне это не важно..
10.10.2012, 14:33
Аватар для 3Nymous
3Nymous 3Nymous вне форума Активный участник
Регистрация: 03.10.2011 / Сообщений: 279
Поблагодарили 123 раз(а) / Репутация: 126
Я выбрал первый вариант по 2 координатам:Использует 2 координаты
используй ObjectSet...
но OBJPROP_ANGLE сможешь прочитать только если сам туда чего-нить запишешь

Цитата:
Но для этого нам нужно знать катет и гипотенузу. А это уже откуда взять? Да и в чём их измерить? Ведь это величины разного происхождения.. цена и время.
прояви смекалку, придумай как привести оба значения в одну систему координат, тем более тебе не критична точность вычисления угла... попробуй привязаться к пикселям, например... я сам никогда этим не озадачивался...

имхо, проблема у тебя с доками потому что хелпы пишут программисты и для программистов ))
т.е. читай и понимай как программист... привыкай, а не возмущайся... и ищи решения... постоянный поиск решений - это и есть работа программиста...
10.10.2012, 22:59
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 532
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
В общем-то это даже и хорошо, что такие как ты 3Nymous себя так ведут. Я долбался 3 дня и получил бесценный опыт. Всё реализовал, и даже больше чем ожидал.
Хотя знакомые программисты мне утверждали, что я не прав, и что такого не сделать. И т.д. и т.п.
Но у меня нет рамок, я открыт новому, в отличие от тех кто привык верить кому-то на слово. И знаю, что только так можно достичь любой цели. Всё, спасибо за непомощ
14.10.2012, 10:13
Аватар для gold_traid
gold_traid gold_traid вне форума Новичок форума
Регистрация: 24.08.2012 / Сообщений: 108
Поблагодарили 27 раз(а) / Репутация: 28
  • Отправить сообщение для gold_traid с помощью ICQ
Доброго времени суток господа программисты!Подскажите пожалуйста как заставить советника открывать одновреммено не одну позицию ну а скажем 5-7 то сть получается так индикаторы дают сигнал на покупку(продажу) и вот тут нужно чтоб было 5-7 открытых ползиций
14.10.2012, 12:00
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,034 раз(а) / Репутация: 9034
  • Отправить сообщение для eevviill с помощью Skype™
Доброго времени суток господа программисты!Подскажите пожалуйста как заставить советника открывать одновреммено не одну позицию ну а скажем 5-7 то сть получается так индикаторы дают сигнал на покупку(продажу) и вот тут нужно чтоб было 5-7 открытых ползиций
1)Перед каждым открытием позиции подсчитывать количество открытых ордеров и ввести условие чтобы открывалось не больше Х ордеров.

2)Через функцию for
После каждой успешной итерации(открытие ордера) добавлять в переменную Х еденицу. Цыкл заканчивать тогда когда Х станет = ограниченому количеству ордеров.
14.10.2012, 12:06
Аватар для gold_traid
gold_traid gold_traid вне форума Новичок форума
Регистрация: 24.08.2012 / Сообщений: 108
Поблагодарили 27 раз(а) / Репутация: 28
  • Отправить сообщение для gold_traid с помощью ICQ
1)Перед каждым открытием позиции подсчитывать количество открытых ордеров и ввести условие чтобы открывалось не больше Х ордеров.

2)Через функцию for
После каждой успешной итерации(открытие ордера) добавлять в переменную Х еденицу. Цыкл заканчивать тогда когда Х станет = ограниченому количеству ордеров.
я так понимаю вот тут надо
PHP код:
for (int l_pos_308 0l_pos_308 l_ord_total_4l_pos_308++) 
15.10.2012, 00:30
Аватар для joseph
joseph joseph вне форума Новичок форума
Регистрация: 07.12.2009 / Сообщений: 13
Поблагодарили 1 раз в 1 сообщении / Репутация: -2

По умолчанию нужна помощь

Подскажите,плиз, как вынести в некие переменные точки A,B,C ,чтобы потом с ними можно было работать .Точки A & B это пересечение свечек с линией , а С это максимум свечей между А и В .Причем между А и В должна быть хотябы одна свеча и она должна не касаться линии.
В учебнике про это не нашел. Или может есть советник с подобными приемами ?
15.10.2012, 07:26
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,034 раз(а) / Репутация: 9034
  • Отправить сообщение для eevviill с помощью Skype™
я так понимаю вот тут надо
PHP код:
for (int l_pos_308 0l_pos_308 l_ord_total_4l_pos_308++) 
Да.
15.10.2012, 07:33
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Подскажите,плиз, как вынести в некие переменные точки A,B,C ,чтобы потом с ними можно было работать .Точки A & B это пересечение свечек с линией , а С это максимум свечей между А и В .Причем между А и В должна быть хотябы одна свеча и она должна не касаться линии.
В учебнике про это не нашел. Или может есть советник с подобными приемами ?
Не всё есть в учебнике. Так и должно быть. Пора переходить на справочник.
_http://docs.mql4.com/ru/objects/ObjectGet
Доставай время,
_http://docs.mql4.com/ru/series/iBarShift
вычисляй из него № бара.
Доставай цену линии на этом баре. Проверяй пробил ли бар линию. Если нет переходи к следующему бару...
Так найдёшь все бары которые пробивают линию.
_http://docs.mql4.com/ru/series/iHighest
Поможет найти С
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 15.10.2012 в 07:41.
15.10.2012, 23:09
Аватар для Forex-man
Forex-man Forex-man вне форума Заблокирован
Регистрация: 01.02.2012 / Сообщений: 76
Поблагодарили 29 раз(а) / Репутация: 30
  • Отправить сообщение для Forex-man с помощью Skype™
Привет всем.Подскажите как отвязывать советник от dll,он уже декомпильнутый,но его нужно так сказать вылечить.Как это делается?
18.10.2012, 15:14
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 532
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Привет всем.Подскажите как отвязывать советник от dll,он уже декомпильнутый,но его нужно так сказать вылечить.Как это делается?
Всё что есть в dll перенести в совок и из совка убрать упоминание про dll по названию dll. Суть такая..
26.10.2012, 10:21
Аватар для xsyr
xsyr xsyr вне форума Местный житель
Регистрация: 28.07.2012 / Сообщений: 409
Поблагодарили 265 раз(а) / Репутация: 266
Как сделать так чтобы лот всегда соответствовал плечу 1:300, например при десяти долларах на депозите объем 0,03; при 7 долларах - 0,02 и т.д., или так вообще нельзя сделать?

Последний раз редактировалось xsyr; 26.10.2012 в 11:01.
26.10.2012, 14:48
Регистрация: 13.03.2009 / Сообщений: 2,394
Поблагодарили 1,974 раз(а) / Репутация: 2051
Как сделать так чтобы лот всегда соответствовал плечу 1:300, например при десяти долларах на депозите объем 0,03; при 7 долларах - 0,02 и т.д., или так вообще нельзя сделать?
Напиши на бумажке формулу по которой считаешь лот, потом напиши всё то же самое в языке программирования. Не забудь нормировать полученный лот, под минимальный, максимальный и шаг изменения.
Но это пролезет только если ДЦ даёт болшее кредитное плечё, иначе при открытии ордера получишь сообщение об ошибке, что бабла на счёте не хватает.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
06.11.2012, 19:18
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 532
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Вот функция поиска своих ордеров, которая мне попалась когда я изучать какнаписать один эксперт:

PHP код:
void FindOrders()
{
// - 1 - == Инициализация переменных перед поиском ======================================
   
int total OrdersTotal() - 1;
   
g_type = -1;                                    // На текущий момент у нас нет позиций
// - 1 - == Окончание блока =============================================================
 
// - 2 - == Непосредственно поиск =======================================================
   
for (int i total>= 0i--)                // Используется весь список ордеров
      
if (OrderSelect(iSELECT_BY_POS))           // Убедимся, что ордер выбран
         
if (MathFloor(OrderMagicNumber()) == i_magicNumber &&// Ордер открыт
             
OrderSymbol() == Symbol())            // ..экспертом, который прикреплен к..
         
{                                         // ..текущей паре
            
g_ticket OrderTicket();              // Запишем данные ордера
            
g_type OrderType();
         } 
// - 2 - == Окончание блока =============================================================

Для меня не совсем понятен участок:

PHP код:
 if (MathFloor(OrderMagicNumber()) == i_magicNumber 
Зачем использовать функцию MathFloor для мейджика, если мейджик прописан во входных данных и он целый? Какой смысл его "округлять", если он и так целый? Есть ли тут вообще смысл?
06.11.2012, 19:23
Аватар для Айбек
Айбек Айбек вне форума Активный участник
Регистрация: 27.09.2011 / Сообщений: 65
Поблагодарили 38 раз(а) / Репутация: 39
Всем привет! Кто нить подскажите функцию удаления отложенного ордера при срабатывании противоположного) Заранее спасибо)
Ответить

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


Опции темы

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

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



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


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