очень "уважительную" тему вы открыли, СТОЛЬКО АРГУМЕНТОв....
(вот я пришел язык изучать, а что-то мне тут не нравится - поменяйте пожалуйста !!!)
переменная double IstCena кроме загромаждения места что-то еще делает ???
Ответ на вопрос, было бы желание нашли бы в ветке дня новичков где вам в частности и мне место.
дописать одну переменную в описание пользовательской функции и поставить обработку условия или свитч надеюсь сумеете
Здравствуйте!
Как обычно нужна помощь, не могу разобраться как правильно выбирать отложенные ордера по магическому номеру. Можете кто-нибудь скинуть код, чтоб на примере посмотреть как это делается. Заранее спасибо!)
Выбирает любой заданный ордер, открытый самым последним и возвращает его тикет. Если такого ордера нет, то возвращает -1 :
//-----------------------------------------------------------------------------+ int GetTicketLastOpenOrder(string sy, int op, int mn) { int i, j=-1, t=0, k=OrdersTotal()-1; for (i=k; i>=0; i--) { // цикл от конца к началу if (OrderSelect(i,SELECT_BY_POS)) { if (OrderMagicNumber()!=mn) continue;// если магик не тот - переходим к следующему if (OrderSymbol()!=sy) continue;// если символ не тот - переходим к следующему if (OrderType()!=op) continue;// если тип не тот - переходим к следующему if (t<OrderOpenTime()) { // выбран нужный, ... t=OrderOpenTime(); // ... ищем последний ... j=i; // ... открытый ордер } } else Print("FUNC GetTicketLastOpenOrder() ошибка выбора ордера "+GetLastError()); } if (OrderSelect(j,SELECT_BY_POS)) return(OrderTicket()); // если найден ордер, вернём его тикет return(-1); // иначе - возвращаем -1 } //-----------------------------------------------------------------------------+
Да критика уместная,
я не просил изменить язык, я просил дополнить документацию,
а double IstCena
специально вставлена для тех КТО читает не смысл, а ищет ошибки и их не видет, а она вот
if (ticket2 > ticket1 || ticket2==0???)
и вы я вижу не страдаете оптимизацией. все это я написал потому как люди устали бороться и присоединяют DLL не известного происхождения но со стандартными понятными функциями, или ищут как присоединить Java class.
Лояльней надо быть критика ведь конструктивная, и помогает улучшить программу.
ладно пойду к новичкам, может чего нового узнаю.
Да критика уместная,
я не просил изменить язык, я просил дополнить документацию,
а double IstCena
специально вставлена для тех КТО читает не смысл, а ищет ошибки и их не видет, а она вот
и вы я вижу не страдаете оптимизацией. все это я написал потому как люди устали бороться и присоединяют DLL не известного происхождения но со стандартными понятными функциями, или ищут как присоединить Java class.
Лояльней надо быть критика ведь конструктивная, и помогает улучшить программу.
ладно пойду к новичкам, может чего нового узнаю.
Интересно вы пишете... А искали? В частности о константах:
Константа | Значение | Описание |
---|---|---|
OP_BUY | 0 | Покупка |
OP_SELL | 1 | Продажа |
OP_BUYLIMIT | 2 | Отложенный ордер BUY LIMIT |
OP_SELLLIMIT | 3 | Отложенный ордер SELL LIMIT |
OP_BUYSTOP | 4 | Отложенный ордер BUY STOP |
OP_SELLSTOP | 5 | Отложенный ордер SELL STOP |
Да о них я и писал
вот видите они имеют два значения одно цифровое в виде int, с этим понятно
Второе не понятно
пример
я пишу алгоритм и вставляю в переменную string torg="OP_BUY";
будет ли работать данная конструкция, для чего это нужно, ну допустим я делаю шаблон для выполнения
который первоначально имеет текстовый формат
string text="Order"+условие+"Close"или"Send"+OP_BUY или OP_SELL ну и так долее если вы понимаете что такое шаблон
и само сабой мне нужно знать точный синтаксис написания этих констант, я в вопросе и сделал ссылку на все эти константы
Да о них я и писал
вот видите они имеют два значения одно цифровое в виде int, с этим понятно
Второе не понятно
пример
я пишу алгоритм и вставляю в переменную string torg="OP_BUY";
будет ли работать данная конструкция, для чего это нужно, ну допустим я делаю шаблон для выполнения
который первоначально имеет текстовый формат
string text="Order"+условие+"Close"или"Send"+OP_BUY или OP_SELL ну и так долее если вы понимаете что такое шаблон
и само сабой мне нужно знать точный синтаксис написания этих констант, я в вопросе и сделал ссылку на все эти константы
Раз есть константа, значит у неё есть значение. Это вам говорит о чём-нибудь? В справочнике есть все константы - их просто нужно видеть. Пробовали читать справку в МЕ? Ставите курсор на команду, нажимаете F1 и читаете. А ещё, в справке есть ссылки, по которым тоже неплохо бы переходить иногда. В частности: для того, чтобы показать вам константы, я перешёл по ссылке в описании OrderSend()
cmd - Торговая операция. Может быть любым из значений торговых операций.
ЗЫ. А зачем вам строковый шаблон??? Вы хотите потом вычленять из него данные? Умом Россию не понять...
судя по ответу вы не сильно поняли, о чем идет речь. Я умею пользоваться документацией.
int OrderSend (string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
а вот пример функции
//-------------------------------------------------------------------- // simpleopen.mq4 // Предназначен для использования в качестве примера в учебнике MQL4. //-------------------------------------------------------------------- int start() // Спец. функция start() { // Открытие BUY OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point); return; // Выход из start() } //--------------------------------------------------------------------
что-то OP_BUY не сильно смахивает на int вопрос какой формат int cmd в данном примере явно не int.
З.Ю. Очень нужна обработка массивов, которые в параметрах данного языка не реализовать, само-сабой прейдется цеплять внешнюю библиотеку, которая уже будет выдовать текстовую строку для исполнения в зависимости от результата обработки,
судя по ответу вы не сильно поняли, о чем идет речь. Я умею пользоваться документацией.
а вот пример функции
что-то OP_BUY не сильно смахивает на int вопрос какой формат int cmd в данном примере явно не int.
З.Ю. Очень нужна обработка массивов, которые в параметрах данного языка не реализовать, само-сабой прейдется цеплять внешнюю библиотеку, которая уже будет выдовать текстовую строку для исполнения в зависимости от результата обработки,
Судя по вашим высказываниям, вы не очень поняли, что я вас прекрасно понял и дал вам ответ.
Дубль два:
Константа | Значение | Описание |
---|---|---|
OP_BUY | 0 | Покупка |
OP_SELL | 1 | Продажа |
OP_BUYLIMIT | 2 | Отложенный ордер BUY LIMIT |
OP_SELLLIMIT | 3 | Отложенный ордер SELL LIMIT |
OP_BUYSTOP | 4 | Отложенный ордер BUY STOP |
OP_SELLSTOP | 5 | Отложенный ордер SELL STOP |
Столбец Значение вам хоть о чём-либо говорит?
Вы знакомы с #define ?
Может так понятнее будет:
#define Op_My_Buy 0 #define Op_My_Sell 1 #define Op_My_BuyLimit 2 #define Op_My_SellLimit 3 #define Op_My_BuyStop 4 #define Op_My_SellStop 5
Да о них я и писал
вот видите они имеют два значения одно цифровое в виде int, с этим понятно
Второе не понятно
пример
я пишу алгоритм и вставляю в переменную string torg="OP_BUY";
будет ли работать данная конструкция, для чего это нужно, ну допустим я делаю шаблон для выполнения
который первоначально имеет текстовый формат
string text="Order"+условие+"Close"или"Send"+OP_BUY или OP_SELL ну и так долее если вы понимаете что такое шаблон
и само сабой мне нужно знать точный синтаксис написания этих констант, я в вопросе и сделал ссылку на все эти константы
OP_BUY, OP_SELL - это имена констант. К ним можно относиться также как к именам переменных. Только переменным можно присваивать разные значения в процессе работы программы, а константам нет.
string torg="OP_BUY"; - это неправильно. Вот так можно: int torg = OP_BUY;
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте !!!
Не могли бы вы улучшить документацию и определить некоторые константы, встроенные переменные и т.д.
в частности
1.работа с датами (datetime)
определите формат по умолчанию. т.е. если передается параметр в переменную определенную как datetime в виде, допустим 20131002
то будет этой переменной присвоено значение 02.10.2013 а не 0 (ноль) или 01.01.1970
2.работа с массивами array[0],
Не где не описано, что размер массива задается только числом, что нельзя подставить переменную, что нужно обнулить массив, доже если он задан числом, вообщем что эта функция сырая, и более менее работает только при написании индикатора, в скриптах и советниках она не пашет в формате array[0],.
в таком случае ее надо перенести в Индикаторы. или описать ограничения.
Нужно описать такие данные как Торговые операции и им подобные
т.к. эти данные встречаються в разных функциях
Пример OP_SELL
В функции OrderSend это значение определенно как int и равно 1
но будет ли оно распознано если будет передан параметр в виде текста с соблюдением регистра
Ну допустим в языках С++ это работает.
т.е. вы даете два варианта представления этих данных один в виде int, а второй не известный и самое главное он работает в примерах, это также имеет отношение ко всем Стандартным константам
Для чего это нужно вот простоу пример двух функций которые могут быть объединены в одну с включением критерия
теперь одна функция
и теперь при вызове этой функции могут в переменную cmd вставить текст вместо 0,1,2,3,4,5
я то до этого уже дошел и понял разницу, а вот новичок, с умением писать в java, C++, paskal, ну и прочее будет мучаться
ну я еще думаю, что не все не описанные тонкости этого языка я узнал.
По этому большая просьба, дополните вашу документацию хотя бы разделом отличия от других языков
И еще допустим мне надо в этой функции получить не самую первую цену а допустим время открытия самого раннего ордера
как мне передать параметр
в Строку
чтобы было
order_open_price = OrderOpenTime();
Заранее благадарю