Как заработать деньги. Проект сам себе финансист.
июль 2011
пн вт ср чт пт сб вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Главная » » »

Пишем простейшего эксперта

На наш взгляд, наиболее простым способом для новичка изучить процесс написания экспертов будет подробный разбор специально написанных для этой цели экспертов. На данный момент (да и далее в своих статьях) мы не будем ставить перед собой цель написать супер гениального эксперта, который способен будет зарабатывать десятки процентов в месяц и делать это стабильно. Основная цель - показать все аспекты программирования экспертов, а не создать биржевой "грааль".

Итак, внимательно изучите код эксперта ниже, но не волнуйтесь, что на данный момент Вам пока еще ничего не понятно. В следующих выпусках мы вместе с вами во всех подробностях разберем каждую строчку этого эксперта.

 
//+------------------------------------------------------------------+ //| 
My First Expert. mq4 | //| Copyright © 2006, Andrey Vedikhin | //| http://www. vedikhin. ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Andrey Vedikhin" #property link "http://www. vedikhin. ru" #define STATE_SQUARE 0 #define STATE_LONG 1 #define STATE_SHORT 2 //---- input parameters extern int MAPeriod=13; extern double LotsNumber=1.0; //---- глобальные переменные int CurrentState; int MyOrderTicket; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- if (iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0) > Close[0]) CurrentState = STATE_SHORT; else CurrentState = STATE_LONG; MyOrderTicket = 0; //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function |
//+------------------------------------------------------------------+ int start() { //---- int err; double MA; MA = iMA(NULL, 0, MAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0); if ( CurrentState == STATE_LONG) { if (MA > Close[1]) //скользящая средняя выше цены закрытия { CurrentState = STATE_SHORT; //переворачиваемся в продажу //---закрыть позицию, если была открыта if ( MyOrderTicket!= 0) { if (!OrderClose(MyOrderTicket, LotsNumber, Bid, 3, CLR_NONE)) { err = GetLastError(); Print("Ошибка при закрытии позиции: ", err); return(0); } MyOrderTicket = 0; } RefreshRates(); //--- длинная позиция была закрыта успешно //--- теперь откроем позицию в продажу //--- проверим на наличие свободных средств if (!CheckForEnoughMargin()) return(0);
MyOrderTicket = OrderSend(Symbol(), OP_SELL, LotsNumber, Bid, 3, 0, 0, NULL, 0, 0, CLR_NONE); if (MyOrderTicket<0) { err = GetLastError(); Print("Ошибка при открытии позиции: ", err); MyOrderTicket = 0; } } } else { if (MA < Close[1]) //скользящая средняя ниже цены закрытия { CurrentState = STATE_LONG; //переворачиваемся в покупку //---закрыть позицию, если была открыта if ( MyOrderTicket!= 0) { if (!OrderClose(MyOrderTicket, LotsNumber, Ask, 3, CLR_NONE)) { err = GetLastError(); Print("Ошибка при закрытии позиции: ", err); return(0); } MyOrderTicket = 0; } RefreshRates(); //--- короткая позиция была закрыта успешно //--- теперь откроем позицию в покупку //--- проверим на наличие свободных средств if (!CheckForEnoughMargin()) return(0); MyOrderTicket = OrderSend(Symbol(), OP_BUY, LotsNumber, Ask, 3, 0, 0, NULL, 0, 0, CLR_NONE); if (MyOrderTicket<0) { err = GetLastError(); Print("Ошибка при открытии позиции: ", err); MyOrderTicket = 0; } } } //---- return(0); } //+------------------------------------------------------------------+ //| Проверка наличия свободной маржи | //+------------------------------------------------------------------+ bool CheckForEnoughMargin() { if (GetOneLotMargin(Symbol())*LotsNumber

Благодарим Вас за то, что Вы мужественно дочитали до этой строчки. Как было сказано выше, в следующих выпусках мы подробно остановимся на каждой строчке этого эксперта, и проясним все непонятные моменты.



Автор статьи: Андрей Ведихин

Хомячковый рай. Уйти и потеряться:

Комментарии к этой заметке больше не принимаются.




Есть что сказать? Не стесняйтесь!






Последние статьи:

Выгодные «исламские счета» для трейдеров Форекс Выгодные «исламские счета» для трейдеров Форекс Таким образом, вне зависимости от стиля работы стоит использовать «исламские счета» и сотрудничать с компаниями, которые не берут с трейдеров swap-комиссии. ..
2014-09-29
Стоит ли покупать чужие торговые сигналы и прогнозы? Стоит ли покупать чужие торговые сигналы и прогнозы? И все же основным нашим советом станет отказ от покупки торговых сигналов и прогнозов. Куда лучше научиться анализировать валютный рынок и думать всегда только своей головой. ..
2015-02-12

Видео по теме:




В мире больших денег

  • Самые богатые люди
    планеты. Ежегодные рейтинги FORBS. Истории успеха признаных финансовых гуру
  • Самые дорогие вещи:
    Часы, автомобили, ноутбуки стоимотью в десятки и сотни тысяч долларов. Рубрика "Чтоб я так жил"
  • Денежные прогнозы
    Что покупать и что продавать? Периодические прогнозы цен на иностранные валюты, акции крупнейших компаний и драгоценные металлы

ВКонтакте с деньгами

УГОЛОК АДМИНИСТРАТОРА