jkeks блог


Освоение MQL5



13.7.2010 466 просмотров ;)


Дела по освоению MQL5 двигаются немного в гору, я рад если в день напишу хотя бы 3 умных строчки, как например:

MqlTick  currentCost;
SymbolInfoTick("EURUSD", currentCost);
Comment(currentCost.bid);

image

Как-то я немного замечаю за собой что SEO на меня действовало не так как Forex. Разница в том что в Forex я себя не мотивирую, а просто потихонью с интересом для себя пишу код на MQL5, а в случае в SEO порог на этот рынок для меня может какой-то не то чтобы бы большой, а просто скучный, т.к. зарабатывал я, но зарабатывать там скучно. Много рутины, которую решить не просто, а интереса у меня много меньше.

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

Вот исходник:

//+——————————————————————+
//|                                                       jkeks2.mq5 |
//|                        Copyright 2010, MetaQuotes Software Corp. |
//|                                             
http://www.jkeks.ru |
//+——————————————————————+
#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "
http://www.jkeks.ru"
#property version   "1.00"

input int percentFromHigh=40;
input int percentFromLow=40;
//+——————————————————————+
//| Expert initialization function                                   |
//+——————————————————————+
int OnInit()
  {
//—
   Comment("Активизируюсь");
//—
   return(0);
  }
//+——————————————————————+
//| Expert deinitialization function                                 |
//+——————————————————————+
void OnDeinit(const int reason)
  {
//—

  }
//+——————————————————————+
//| Expert tick function                                             |
//+——————————————————————+
void OnTick()
  {
//—
// переменные для учета нового бара
   static datetime oldTime;
   datetime newTime[1];
   bool isNewBar=false;
   int   newBarCopied=CopyTime("EURUSD",PERIOD_M1,0,1,newTime);
   if(newBarCopied>0)
     {
      if(oldTime!=newTime[0])
        {
         isNewBar=true;
         //Alert("Новая свеча");
         oldTime=newTime[0];
        }
     }
   else
     {
      Alert("не копируецца");
      ResetLastError();
      return;
     }

// покупать только при новом баре
   if(isNewBar==true)
     {
      MqlRates rates[];
      int copied=CopyRates("EURUSD",PERIOD_M1,0,3,rates);
      if(copied<=0)
         Comment("Ошибка копирования rates");
      else
        {
         string out;
         double percentLowToClose;
         percentLowToClose=DoubleToString((rates[1].close-rates[1].low)*100/(rates[1].high-rates[1].low));
         if(percentLowToClose>=(100-percentFromHigh))
            Alert("sell");
         else if(percentLowToClose<=percentFromLow)
            Alert("buy");
         else
            Alert("See Previous Bar");
        }
      }
    else
      {
      MqlTick  currentCost;
      SymbolInfoTick("EURUSD", currentCost);
      Comment(currentCost.bid);
      }

  }
//+——————————————————————+

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

MetaEditor – фиговый тем что нет подсветки парных скобок, это вообще – караул.

Сегодня идем ночевать с женой в сад. Мечта и сказка. Погода пасмурная – сказка! Единственное что не очень хорошо, дак это может быть прохладно ночью. Возмем ноут, а там из сравы всякой сварим супец,.. эээх, романтика.







Видеочат рулетка

jAntivirus Рейтинг@Mail.ru