HIDDEN, мне кажется, ты не до конца понимаешь о чём я говорю.
1. Я думаю, что никакой универсальный шаблон нельзя создать в принципе. Ни в природе, ни в среде программирования нет ничего универсального. Невозможно создать "Унивесальный механизм". Не бывает такого. Можно только в одном техническом решении объединить несколько полезных функций. Например идея универсальной мясорубки развилась до уровня кухонного комбайна. Но этим дело и ограничилось. Развивать кухонный комбайн до уровня универсального механизма, чтоб он и пылесосил, и посуду мыл, и ездил, и в магазин ходил - бессмысленно. Теоретически сделать можно, но он получится громоздким и всё равно "все" функции включить в него не удастся.
2. Если всё же поставить такую задачу и пытаться её решать, то не такими средствами, кот. ты предлагаешь. Это оч. серьёзная задача, требующая серьезного подхода с коллективом порграммистов, подчинённых одному гениальному проэктировщику, кот. точно знает что и как делать. Общественными усилиями эта задача решена никогда не будет. Я уже сказал, это пустая затея.
3. Частным решением этой задачи является такой подход: разбить весь механизм на локальные части, выполняющие определённую работу, решающие определённый ограниченный круг задач. Позднее из этих частей кто-то индивидуально или в небольшом коллективе может создать советник. Так обычно и делается. Так появляются библиотеки скриптов, функций и пр. Если ты хочешь принять в этом участие, то напиши для начала отдельный скрипт, решающий одну задачу так и таким способом, кот. представляется тебе правильным, выложи код на форуме и обсудим что в этом скрипте хорошо, а что требует доработки.
C универсальным шаблоном я все понял, каждый делает под себя.
Помоги исправить мой шаблон так чтобы... вопрос из 3 поста
Все бы ничего, но вот такой ньюанс. Скажем есть ордер BUY, и поступает
сигнал на SELL, ордер должен исполнится, при этом BUY не закрывается.
Данный шаблон не позволяет открывать больше 1-й позиции по одной
валюте. Пробывал дорабатывать но эксперт начинает глючить,
так как хочится что-бы больше одной ставки в одну сторону эксперт
не исполнял.
ОК.
Я говорил уже, что занят сейчас написанием своего эксперта,
поэтому много времени уделить не смогу.
Полагаю, что сделать нужно так.
1. Выложить код, прошедший компиляцию. В твоём коде как минимум
одна ошибка: return(True), где True написано с большой буквы, т.е это не Истина, а некот. неопределённая
переменная. Компилятор наверняка выдал ошибку. Добейся отсутствия
ошибок.
2. После этого посмотрим каких функциональных частей не хватает.
По-моему, не всё в порядке с анализом имеющихся ордеров.
3. Обязательно пиши к каждой строке комментарий.
4.(это не обязательно, но желательно: у меня, ты видел, несколько
иной стиль расставления скобок, мне трудно воспринимать твой
код, если не лень, хорошо бы его упорядочить)
----
При этих условиях можно надеяться довести твой советник до
желаемой работоспособности.
Я бы работал и с твоим шаблоном, но у меня нету всех тех библиотек
каторые ты используешь.
Постараюсь все сделать как ты просишь и отпешусь. Да и большая
помощь пока не нужна, только разобраться с моей проблемой.
SKif: ОК.
Я говорил уже, что занят сейчас написанием своего эксперта,
поэтому много времени уделить не смогу.
Полагаю, что сделать нужно так.
1. Выложить код, прошедший компиляцию. В твоём коде как минимум
одна ошибка: return(True), где True написано с большой буквы, т.е это не Истина, а некот. неопределённая
переменная. Компилятор наверняка выдал ошибку. Добейся отсутствия
ошибок.
...
True и true - одно и то же. Слава сказал, что так сделали специально
для облегчения миграции с МТ3.
Rosh: True и true - одно и то же. Слава сказал, что так сделали специально
для облегчения миграции с МТ3.
Не проверял. Может и так.
Но в коде на форуме - разным цветом. Я не знаю какой код используется
при обработке кодов на форуме. Если текущий МЕ, то не ваша со
Славой правда; если какой-то свой, то его надо привести в соответствие
с МЕ.
HIDDEN,
у меня пока никаких библиотек нету. Я как раз пытаюсь их создавать.
Посмотри готовые решения здесь, на форуме https://www.mql4.com/ru/codebase/
Логические константы (bool)
Логические константы имеют значение true (истина) или false (ложь),
числовое представление которых - 1 или 0 соответственно. Могут
использоваться написания True, TRUE, False и FALSE.
Никак не разберусь как сделать такую функцию как открытие BUY
по сигналу и сразу открытие противоположной сделки. и что-бы
по данной валюте эксперт больше 2-х поз не открывал. Эксперт
должен понимать по каким парам открыты 2 сделки и если по паре
открыта 1 сделка то открываем противоположную. Помогите разобраться
с этой проблемой, при тестах вот такая фигня выскакивает:
1 2001.01.03 02:06 sell 1 0.10 1.6010 1.6115 1.5510 0.00 10000.00
2 2001.01.03 02:07 buy 2 0.10 1.6015 1.5910 1.6515 0.00 10000.00
3 2001.01.03 02:08 buy 3 0.10 1.6011 1.5906 1.6511 0.00 10000.00
........................
т.е. открываемся пока депозит позволяет, как это ограничить.
догадываюсь что просто сделать, но как ума не прилажу.
мне кажется, ты не до конца понимаешь о чём я говорю.
1. Я думаю, что никакой универсальный шаблон нельзя создать в принципе. Ни в природе, ни в среде программирования нет ничего универсального. Невозможно создать "Унивесальный механизм". Не бывает такого. Можно только в одном техническом решении объединить несколько полезных функций. Например идея универсальной мясорубки развилась до уровня кухонного комбайна. Но этим дело и ограничилось. Развивать кухонный комбайн до уровня универсального механизма, чтоб он и пылесосил, и посуду мыл, и ездил, и в магазин ходил - бессмысленно. Теоретически сделать можно, но он получится громоздким и всё равно "все" функции включить в него не удастся.
2. Если всё же поставить такую задачу и пытаться её решать, то не такими средствами, кот. ты предлагаешь. Это оч. серьёзная задача, требующая серьезного подхода с коллективом порграммистов, подчинённых одному гениальному проэктировщику, кот. точно знает что и как делать. Общественными усилиями эта задача решена никогда не будет. Я уже сказал, это пустая затея.
3. Частным решением этой задачи является такой подход: разбить весь механизм на локальные части, выполняющие определённую работу, решающие определённый ограниченный круг задач. Позднее из этих частей кто-то индивидуально или в небольшом коллективе может создать советник. Так обычно и делается. Так появляются библиотеки скриптов, функций и пр. Если ты хочешь принять в этом участие, то напиши для начала отдельный скрипт, решающий одну задачу так и таким способом, кот. представляется тебе правильным, выложи код на форуме и обсудим что в этом скрипте хорошо, а что требует доработки.
Все бы ничего, но вот такой ньюанс. Скажем есть ордер BUY, и поступает сигнал на SELL, ордер должен исполнится, при этом BUY не закрывается. Данный шаблон не позволяет открывать больше 1-й позиции по одной валюте. Пробывал дорабатывать но эксперт начинает глючить, так как хочится что-бы больше одной ставки в одну сторону эксперт не исполнял.
Я говорил уже, что занят сейчас написанием своего эксперта, поэтому много времени уделить не смогу.
Полагаю, что сделать нужно так.
1. Выложить код, прошедший компиляцию. В твоём коде как минимум одна ошибка: return(True), где True написано с большой буквы, т.е это не Истина, а некот. неопределённая переменная. Компилятор наверняка выдал ошибку. Добейся отсутствия ошибок.
2. После этого посмотрим каких функциональных частей не хватает. По-моему, не всё в порядке с анализом имеющихся ордеров.
3. Обязательно пиши к каждой строке комментарий.
4.(это не обязательно, но желательно: у меня, ты видел, несколько иной стиль расставления скобок, мне трудно воспринимать твой код, если не лень, хорошо бы его упорядочить)
----
При этих условиях можно надеяться довести твой советник до желаемой работоспособности.
Постараюсь все сделать как ты просишь и отпешусь. Да и большая помощь пока не нужна, только разобраться с моей проблемой.
ОК.
Я говорил уже, что занят сейчас написанием своего эксперта, поэтому много времени уделить не смогу.
Полагаю, что сделать нужно так.
1. Выложить код, прошедший компиляцию. В твоём коде как минимум одна ошибка: return(True), где True написано с большой буквы, т.е это не Истина, а некот. неопределённая переменная. Компилятор наверняка выдал ошибку. Добейся отсутствия ошибок.
...
True и true - одно и то же. Слава сказал, что так сделали специально для облегчения миграции с МТ3.
Но в коде на форуме - разным цветом. Я не знаю какой код используется при обработке кодов на форуме. Если текущий МЕ, то не ваша со Славой правда; если какой-то свой, то его надо привести в соответствие с МЕ.
Разработчики, обратите внимание.
у меня пока никаких библиотек нету. Я как раз пытаюсь их создавать.
Посмотри готовые решения здесь, на форуме https://www.mql4.com/ru/codebase/
Логические константы имеют значение true (истина) или false (ложь), числовое представление которых - 1 или 0 соответственно. Могут использоваться написания True, TRUE, False и FALSE.
1 2001.01.03 02:06 sell 1 0.10 1.6010 1.6115 1.5510 0.00 10000.00
2 2001.01.03 02:07 buy 2 0.10 1.6015 1.5910 1.6515 0.00 10000.00
3 2001.01.03 02:08 buy 3 0.10 1.6011 1.5906 1.6511 0.00 10000.00
........................
т.е. открываемся пока депозит позволяет, как это ограничить. догадываюсь что просто сделать, но как ума не прилажу.
Вот код эксперта.