1.Прочтите книгу по программированию
2.Прочтите что такое форекс, и как в форексе выставляются уровни стоплосс и тейкпрофит
Ваш код будет выглядеть так:
int start()
{
if (OrdersTotal()<1)
{
if (iOpen(NULL,PERIOD_M1,2)>iClose(NULL,PERIOD_M1,1))
{
ordersell();
}
else
{
orderbay();
}
}
return(0);
}
//+------------------------------------------------------------------+
int orderbay()//функция открытия ордера на покупку
{
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+20*Point);
}
//+------------------------------------------------------------------+
int ordersell()//функция открытия ордера на продажу
{
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+15*Point,Bid-20*Point);
}
Большое спасибо. Ордера стали открываться.
Простейший скрипт simpleopen.mq4, предназначенный для открытия ордера Buy, выглядит так:
//-------------------------------------------------------------------- // simpleopen.mq4 // Предназначен для использования в качестве примера в учебнике MQL4. //-------------------------------------------------------------------- int start() // Спец. функция start() { // Открытие BUY OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point); return; // Выход из start() } //--------------------------------------------------------------------
Если запустить этот скрипт на исполнение, то в подавляющем большинстве случаев он будет работать. Скрипт состоит из одной специальной функции, содержащей функцию открытия ордера OrderSend() и оператор return. Опишем порядок исполнения программных строк и связанных с этим событий.
1. Пользователь прикрепил скрипт к окну финансового инструмента - перетянул название скрипта мышью из окна "Навигатор" клиентского терминала в окно финансового инструмента, по которому он хочет открыть рыночный ордер Buy стоимостью 0.1 лота со стоп-приказами, удалёнными от рыночного курса на 15 пунктов.
2. В момент прикрепления скрипта к окну финансового инструмента клиентский терминал передал управление (запустил на исполнение) специальной функции start() (кратко напомним, что start() скрипта запускается в момент присоединения к окну финансового инструмента, а start() эксперта - в момент поступления ближайшего тика по финансовому инструменту).
3. В рамках исполнения специальной функции start() управление передаётся в строку вызова функции открытия ордера:
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
Перед исполнением этой функции программа вычисляет значения всех формальных параметров:
выдержка из учебника по MQL4, которую я скачал с этого сайта. Здесь как видим открытие ордера отличается от предложенного вами.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
почему то открываеться только ордер на бай. селл нет:( Не могу понять в чем проблема. ошибка 130 по стопам. раз бай открываться думаю что не в стопах дело а где то в другом месте.
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if (OrdersTotal()<1)
{
if (iOpen(NULL,PERIOD_M1,2)>iClose(NULL,PERIOD_M1,1))
{
ordersell();
}
else
{
orderbay();
}
}
return(0);
}
//+------------------------------------------------------------------+
int orderbay()//функция открытия ордера на покупку
{
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+20*Point);
}
//+------------------------------------------------------------------+
int ordersell()//функция открытия ордера на продажу
{
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask-15*Point,Ask+20*Point);
}
собственно говоря злополучный код:)