Ответ
 
Опции темы
09.07.2016, 18:18
Аватар для Cathylva
Cathylva Новичок форума
Регистрация: 18.01.2011 / Сообщений: 10
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от _SERG_ Посмотреть сообщение
Справа внизу, в окошке пишешь имя переменной, или ячейки массива, или индексов перебора, Нажимаешь f11, и смотришь, соответствует результат ожидаемому, или надо подправить код.
и
Сообщение от _SERG_ Посмотреть сообщение
Например: ExtLowerBuffer[i] ...
Вот это мне и было нужно, чтобы въехать в отладчик. Благодарю!

Сегодня полдня ковырял свой код таким образом, но понял пока только то, что dpo считается правильно, но сходит с ума именно Боллинджер:

Вверху (точнее в посередине) - осциллятор, с наложенным на него стандартным индикатором Bollinger Bands Мета Трейдера, а внизу мое творение. Параметры у индюков идентичные.
Короче, для меня загадка почему при прочих равных условиях от цены ленты считаются нормально, а от dpo - какая-то ерунда получается.
Миниатюры:
Нажмите на изображение для увеличения
Название: crazy-bands.gif
Просмотров: 241
Размер:	25.8 Кб
ID:	247505  
Cathylva вне форума Ответить с цитированиемОтветить с цитированием  
09.07.2016, 18:26
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,761
Поблагодарили 9,132 раз(а) / Репутация: 9137
Сообщение от Cathylva Посмотреть сообщение
Сегодня полдня ковырял свой код таким образом, но понял пока только то, что dpo считается правильно, но сходит с ума именно Боллинджер.
Вверху (точнее в посередине) - осциллятор, с наложенным на него стандартным индикатором Bollinger Bands Мета Трейдера, а внизу мое творение. Параметры у индюков идентичные.
Короче, для меня загадка почему при прочих равных условиях от цены ленты считаются нормально, а от dpo - какая-то ерунда получается.
Загляни сюда: http://forexsystemsru.com/1135257-post7427.html
mobidik на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Cathylva (09.07.2016)
09.07.2016, 19:04
Аватар для Cathylva
Cathylva Новичок форума
Регистрация: 18.01.2011 / Сообщений: 10
Поблагодарили 4 раз(а) / Репутация: 5
Сообщение от mobidik Посмотреть сообщение
Загляни сюда: http://forexsystemsru.com/1135257-post7427.html
Едрен, батон! Друг, ты меня прямо выручил. А то я прям зациклился на этом индюке. Первый раз пишу что-то с Боллинджером, о функции iBandsOnArray() даже и не знал. Короче, спасибо!
Cathylva вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
mobidik (09.07.2016)
10.07.2016, 13:57
Аватар для alex_almaty
alex_almaty Интересующийся
Регистрация: 27.02.2014 / Сообщений: 9
Поблагодарили 0 раз(а) / Репутация: 1
Всем доброго времени суток помогите с такой инфой. В советнике используется RSI теперь мне нужно прописать MA от этой RSI. Никак не могу понять как в mql прописать МА от RSI. Наверняка уже кто то это делал.
alex_almaty вне форума Ответить с цитированиемОтветить с цитированием  
10.07.2016, 15:05
Аватар для Cemen4yk1
Cemen4yk1 Местный житель
Регистрация: 18.09.2014 / Сообщений: 227
Поблагодарили 247 раз(а) / Репутация: 248
Сообщение от alex_almaty Посмотреть сообщение
Всем доброго времени суток помогите с такой инфой. В советнике используется RSI теперь мне нужно прописать MA от этой RSI. Никак не могу понять как в mql прописать МА от RSI. Наверняка уже кто то это делал.
iMAOnArray вам в помощь, но проще найти индикатор сглаженного рси

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

https://www.mql5.com/ru/market/product/20691
Cemen4yk1 на форуме Ответить с цитированиемОтветить с цитированием  
14.07.2016, 03:15
Аватар для AleksandM
AleksandM Интересующийся
Регистрация: 14.07.2016 / Сообщений: 3
Поблагодарили 0 раз(а) / Репутация: 1
Всем здрасти) кто нибудь сможет мне помочь разобраться с советником. Написал советник на внешнем индикаторе по видео уроку. Все получилось но не так как хотелось бы) сделки открывает но как то не опираясь на данные индикатора(
AleksandM вне форума Ответить с цитированиемОтветить с цитированием  
14.07.2016, 19:05
Аватар для ivansss
ivansss Новичок форума
Регистрация: 11.12.2015 / Сообщений: 45
Поблагодарили 15 раз(а) / Репутация: 16
Ребят хочу мартин реализовать для бинарных:

У меня есть код ,который я попытался допилить ,но не уверен в его правильности,
суть в том что у меня возврашаеться единица ,если по паре был последний ордер убыточный и далее ордер множиться,проверьте пожалуста


int FindLastOrederType()
{

for ( int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol()&& OrderTakeProfit() < -1 && OrderMagicNumber()==Magic)
{
Martin = 1;
}
return( Martin );
}

}
return(-1);
ivansss на форуме Ответить с цитированиемОтветить с цитированием  
15.07.2016, 13:13
Аватар для officialboob
officialboob Элитный участник
Регистрация: 13.07.2013 / Адрес: Moscow / Сообщений: 2,269
Поблагодарили 1,302 раз(а) / Репутация: 1261
Сообщение от ivansss Посмотреть сообщение
Ребят хочу мартин реализовать для бинарных:

У меня есть код ,который я попытался допилить ,но не уверен в его правильности,
суть в том что у меня возврашаеться единица ,если по паре был последний ордер убыточный и далее ордер множиться,проверьте пожалуста

PHP код:
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг убыточности последней позиции. *               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isLossLastPos(string sy=""int op=-1int mn=-1) {
  
datetime t=0;
  
int      ij=-1k=OrdersHistoryTotal();

  if (
sy=="0"sy=Symbol();
  for (
i=0i<ki++) {
    if (
OrderSelect(iSELECT_BY_POSMODE_HISTORY)) {
      if (
OrderSymbol()==sy || sy=="") {
        if (
OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (
op<|| OrderType()==op) {
            if (
mn<|| OrderMagicNumber()==mn) {
              if (
t<OrderCloseTime()) {
                
t=OrderCloseTime();
                
j=i;
              }
            }
          }
        }
      }
    }
  }
  if (
OrderSelect(jSELECT_BY_POSMODE_HISTORY)) {
    if (
OrderProfit()<0) return(True);
  }
  return(
False);


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Всем бобра!
Алексея Бонифациевича Фіерсова (Пылесоса) на портянку!
officialboob вне форума Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
ivansss (15.07.2016), RoboMaks (17.07.2016)
17.07.2016, 06:17
Аватар для RoboMaks
RoboMaks Элитный участник
Регистрация: 19.08.2012 / Адрес: Баку, Азербайджан / Сообщений: 651
Поблагодарили 1,118 раз(а) / Репутация: 1128
  • Отправить сообщение для RoboMaks с помощью Skype™
Огромнейшее человеческое СПАСИБО И. Киму за его неоценимую помощь !!!
Очень много ответов на вопросы можно с лёгкостью найти здесь:
_https://forum.mql4.com/ru/11287
Вложения:
Тип файла: docx KimIV.docx (92.9 Кб, 5 просмотров)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Программирование советников, индикаторов и скриптов для МТ4
контакты для платных работ:
e-mail: maksshukurov@mail.ru
skype: maksshukurov1
RoboMaks вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
DomovenokBrest (17.07.2016)
18.07.2016, 19:49
Аватар для alhoya
alhoya Прохожий
Регистрация: 26.10.2014 / Сообщений: 1
Поблагодарили 0 раз(а) / Репутация: 1
Всем привет кто-нибудь может помочь поправить код?

Есть трейлинг стоп, вот код:

void TrailingPositions() {
double pBid, pAsk, pp;

pp = MarketInfo(OrderSymbol(), MODE_POINT);
if (OrderType()==OP_BUY)
{
if (OrderMagicNumber()==Magic || OrderMagicNumber()==Magic2)
{
pBid = MarketInfo(OrderSymbol(), MODE_BID);
if (!ProfitTrailing || (Bid-OrderOpenPrice())>TrailingStop*pp) {
if (OrderStopLoss()<Bid-(TrailingStop+TrailingStep-1)*pp) {
ModifyStopLoss(Bid-TrailingStop*pp);
return;
}
}
}
}


if (OrderType()==OP_SELL)
{
if (OrderMagicNumber()==Magic || OrderMagicNumber()==Magic2)
{
pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
if (!ProfitTrailing || OrderOpenPrice()-Ask>TrailingStop*pp) {
if (OrderStopLoss()>Ask+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0) {
ModifyStopLoss(Ask+TrailingStop*pp);
return;
}
}
}
}
}

На 5 знаке всё отлично работает а на 4 знаке сделки не открываются по тем же ценам я не знаю что изменить в коде,сломал почти голову,
кто поможет отблагодарю 10$
alhoya вне форума Ответить с цитированиемОтветить с цитированием  
18.07.2016, 20:36
Аватар для Cemen4yk1
Cemen4yk1 Местный житель
Регистрация: 18.09.2014 / Сообщений: 227
Поблагодарили 247 раз(а) / Репутация: 248
Сообщение от alhoya Посмотреть сообщение
Всем привет кто-нибудь может помочь поправить код?

Есть трейлинг стоп, вот код:

void TrailingPositions() {
double pBid, pAsk, pp;

pp = MarketInfo(OrderSymbol(), MODE_POINT);
if (OrderType()==OP_BUY)
{
if (OrderMagicNumber()==Magic || OrderMagicNumber()==Magic2)
{
pBid = MarketInfo(OrderSymbol(), MODE_BID);
if (!ProfitTrailing || (Bid-OrderOpenPrice())>TrailingStop*pp) {
if (OrderStopLoss()<Bid-(TrailingStop+TrailingStep-1)*pp) {
ModifyStopLoss(Bid-TrailingStop*pp);
return;
}
}
}
}


if (OrderType()==OP_SELL)
{
if (OrderMagicNumber()==Magic || OrderMagicNumber()==Magic2)
{
pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
if (!ProfitTrailing || OrderOpenPrice()-Ask>TrailingStop*pp) {
if (OrderStopLoss()>Ask+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0) {
ModifyStopLoss(Ask+TrailingStop*pp);
return;
}
}
}
}
}

На 5 знаке всё отлично работает а на 4 знаке сделки не открываются по тем же ценам я не знаю что изменить в коде,сломал почти голову,
кто поможет отблагодарю 10$
корявенький код, кажись вы не используете автоопределение 4-5 знака в корне кода - не надо пихать его в каждую функцию, скорее всего попутали что такое Point и куда его пихать а также не вижу использование функции Digits есть такие полезные предопределённые функции _Point и _Digits так либо так Point() и Digits() - почитайте в справке по кнопке ф1 зачем и куда они нужны

пысы а пример "правильного" кода "трала" посмотрите в кодбазе на мкл-маркете -примеров предостаточно и все бесплатные https://www.mql5.com/ru/code

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

https://www.mql5.com/ru/market/product/20691

Последний раз редактировалось Cemen4yk1; 18.07.2016 в 20:41.
Cemen4yk1 на форуме Ответить с цитированиемОтветить с цитированием  
18.07.2016, 21:29
Аватар для officialboob
officialboob Элитный участник
Регистрация: 13.07.2013 / Адрес: Moscow / Сообщений: 2,269
Поблагодарили 1,302 раз(а) / Репутация: 1261
Сообщение от alhoya Посмотреть сообщение
Всем привет кто-нибудь может помочь поправить код?

Замените функции трала на Кимовские (из советника ниже) и все будет ОК.

А если хотите исправлять существующие, разбирайтесь с корректным использованием в коде Point и Digits...


Ну еще может не работать если от TrailingStop, TrailingStep не отнимается лишний нолик.
Вложения:
Тип файла: mq4 e-Trailing2.mq4 (12.7 Кб, 6 просмотров)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Всем бобра!
Алексея Бонифациевича Фіерсова (Пылесоса) на портянку!

Последний раз редактировалось officialboob; 18.07.2016 в 21:34.
officialboob вне форума Ответить с цитированиемОтветить с цитированием  
30.07.2016, 16:14
Аватар для ivansss
ivansss Новичок форума
Регистрация: 11.12.2015 / Сообщений: 45
Поблагодарили 15 раз(а) / Репутация: 16
Помогите пожалуйста , нужно чтобы возглашалась цена открытия последнего ордера независимо закрыт он или открыт,в моем коде возврашаеться цена открытого ордера.

double lastOrderPrice()

{ int oldtickets;
ticket = 0;
double oldopenprices=0;
for (int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(cnts,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gic)
{
oldtickets =OrderTicket();
if(oldtickets>ticket)
{
ticket = oldtickets;
oldopenprices = OrderOpenPrice();
}
}
}
}
return(oldopenprices);
}
ivansss на форуме Ответить с цитированиемОтветить с цитированием  
30.07.2016, 17:09
Аватар для vladradon
vladradon Активный участник
Регистрация: 12.02.2015 / Сообщений: 127
Поблагодарили 52 раз(а) / Репутация: 52
Сообщение от alhoya Посмотреть сообщение
Всем привет кто-нибудь может помочь поправить код?

Есть трейлинг стоп, вот код:

void TrailingPositions() {
double pBid, pAsk, pp;

pp = MarketInfo(OrderSymbol(), MODE_POINT);
if (OrderType()==OP_BUY)
{
if (OrderMagicNumber()==Magic || OrderMagicNumber()==Magic2)
{
pBid = MarketInfo(OrderSymbol(), MODE_BID);
if (!ProfitTrailing || (Bid-OrderOpenPrice())>TrailingStop*pp) {
if (OrderStopLoss()<Bid-(TrailingStop+TrailingStep-1)*pp) {
ModifyStopLoss(Bid-TrailingStop*pp);
return;
}
}
}
}


if (OrderType()==OP_SELL)
{
if (OrderMagicNumber()==Magic || OrderMagicNumber()==Magic2)
{
pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
if (!ProfitTrailing || OrderOpenPrice()-Ask>TrailingStop*pp) {
if (OrderStopLoss()>Ask+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0) {
ModifyStopLoss(Ask+TrailingStop*pp);
return;
}
}
}
}
}

На 5 знаке всё отлично работает а на 4 знаке сделки не открываются по тем же ценам я не знаю что изменить в коде,сломал почти голову,
кто поможет отблагодарю 10$
Возможно нужно внести проверку на стоп уровень:

void TrailingPositions() {
if (MarketInfo(_Symbol,MODE_STOPLEVEL)>=TrailingStop)
{
Alert ("Стоп уровень ",MarketInfo(_Symbol,MODE_STOPLEVEL),
" больше дистанции трейлинга ", TrailingStop);
return;
}
.......

Если дистанция трала меньше или равна стоп уровню, который на разных брокерах и разных парах разный может быть, то трал работать не будет.

Последний раз редактировалось vladradon; 30.07.2016 в 17:14.
vladradon вне форума Ответить с цитированиемОтветить с цитированием  
30.07.2016, 17:36
Аватар для Cemen4yk1
Cemen4yk1 Местный житель
Регистрация: 18.09.2014 / Сообщений: 227
Поблагодарили 247 раз(а) / Репутация: 248
Сообщение от ivansss Посмотреть сообщение
Помогите пожалуйста , нужно чтобы возглашалась цена открытия последнего ордера независимо закрыт он или открыт,в моем коде возврашаеться цена открытого ордера.

double lastOrderPrice()

{ int oldtickets;
ticket = 0;
double oldopenprices=0;
for (int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(cnts,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gic)
{
oldtickets =OrderTicket();
if(oldtickets>ticket)
{
ticket = oldtickets;
oldopenprices = OrderOpenPrice();
}
}
}
}
return(oldopenprices);
}
ну у вас же стоит MODE_TRADES, сделайте такуюже переборку ордеров, но в истории используюя OrdersHistoryTotal() и MODE_HISTORY, а потом сравните тикеты там и там и выберите наибольший

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

https://www.mql5.com/ru/market/product/20691
Cemen4yk1 на форуме Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ivansss (30.07.2016)
30.07.2016, 17:57
Аватар для ivansss
ivansss Новичок форума
Регистрация: 11.12.2015 / Сообщений: 45
Поблагодарили 15 раз(а) / Репутация: 16
Сообщение от Cemen4yk1 Посмотреть сообщение
ну у вас же стоит MODE_TRADES, сделайте такуюже переборку ордеров, но в истории используюя OrdersHistoryTotal() и MODE_HISTORY, а потом сравните тикеты там и там и выберите наибольший
double lastOrderPrice()

{ int oldtickets,ocntickets;
ticket = 0;
double oldopenprices=0;
double openprices=0;
double openpricess =0;

for (int i=OrdersHistoryTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gic)
{
oldtickets =OrderTicket();
{if(oldtickets>ticket)
{ticket = oldtickets;
openprices = OrderOpenPrice();

}
}
}
}
}

for (int x=OrdersTotal()-1;x>=0;x--)
{
if(OrderSelect(x,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gic)
{
ocntickets =OrderTicket();
{if(ocntickets>ticket)
{ticket = ocntickets;
openpricess = OrderOpenPrice();
}
}
}
}
}


if(oldtickets>ocntickets)
{oldopenprices = openprices;}

if(oldtickets<ocntickets)
{oldopenprices=openpricess;
}



return(oldopenprices);
}


получилось подобное,спасибо)
ivansss на форуме Ответить с цитированиемОтветить с цитированием  
01.08.2016, 11:36
Аватар для ValPra
ValPra Новичок форума
Регистрация: 12.11.2012 / Сообщений: 9
Поблагодарили 4 раз(а) / Репутация: 5
Уважаемые специалисты!
Прошу вас подсказать в чём проблема и разгадать загадку.
Элементарный исходный файл SB-experiments.mq4 откомпилирован в разных версиях:
Для компилятора MetaEditor 4.00 Build 509 (файл SB-experiments-OLD.ex4) SB-experiments работает правильно.
Для компилятора MetaEditor 5.00 Build 1351 (файл SB-experiments-NEW.ex4) в SB-experiments не работает подпрограмма "start".
Прошу подсказать причину не работы "start" для нового компилятора.

В виде текста:

#property copyright "Copyright 2016 by ValPra"
#property show_inputs
//#property strict
#include <stdlib.mqh>
#include <stderror.mqh>

extern string OrderCmt = "SB-experiments";
extern int QuantityOfTicks = 30;

string Currpair;
int loopcount=0;
int array_time[30];
double array_ask[30];
double array_bid[30];

void init()
{
ArrayResize(array_ask, QuantityOfTicks);
ArrayResize(array_bid, QuantityOfTicks);
ArrayResize(array_time, QuantityOfTicks);
Currpair = Symbol();
Print ("========== Initialization complete! ===========\n");
return;
}

void start()
{
int sub_loopcount = 0;

if (loopcount < QuantityOfTicks)
{

array_ask[loopcount] = MarketInfo(Currpair, MODE_ASK);
array_bid[loopcount] = MarketInfo(Currpair, MODE_BID);
array_time[loopcount] = TimeCurrent();

Print ("Please wait until enough of ticks data has been gathered! Tick number ",loopcount," ASK=",array_ask[loopcount]," BID=",array_bid[loopcount]," Time=",array_time[loopcount]);
sub_loopcount = loopcount + 1;

if (sub_loopcount == QuantityOfTicks)
Print ("Trade started!");
}

if (loopcount >= QuantityOfTicks)
{
ArrayCopy(array_ask, array_ask, 0, 1, QuantityOfTicks - 1);
ArrayCopy(array_bid, array_bid, 0, 1, QuantityOfTicks - 1);
ArrayCopy(array_time, array_time, 0, 1, QuantityOfTicks - 1);
array_ask[QuantityOfTicks - 1] = MarketInfo(Currpair, MODE_ASK);
array_bid[QuantityOfTicks - 1] = MarketInfo(Currpair, MODE_BID);
array_time[QuantityOfTicks - 1] = TimeCurrent();
}
else
loopcount = loopcount + 1;

return;
}

void deinit()
{
Print (OrderCmt, " has been deinitialized!");
return;
}
Вложения:
Тип файла: mq4 SB-experiments.mq4 (1.6 Кб, 4 просмотров)
Тип файла: ex4 SB-experiments-OLD.ex4 (4.6 Кб, 0 просмотров)
Тип файла: ex4 SB-experiments-NEW.ex4 (8.8 Кб, 1 просмотров)
ValPra вне форума Ответить с цитированиемОтветить с цитированием  
01.08.2016, 13:27
Аватар для _SERG_
_SERG_ Активный участник
Регистрация: 21.07.2009 / Сообщений: 264
Поблагодарили 82 раз(а) / Репутация: 82
Сообщение от ValPra Посмотреть сообщение
Уважаемые специалисты!
Прошу вас подсказать в чём проблема и разгадать загадку.
Элементарный исходный файл SB-experiments.mq4 откомпилирован в разных версиях:
Для компилятора MetaEditor 4.00 Build 509 (файл SB-experiments-OLD.ex4) SB-experiments работает правильно.
Для компилятора MetaEditor 5.00 Build 1351 (файл SB-experiments-NEW.ex4) в SB-experiments не работает подпрограмма "start".
Прошу подсказать причину не работы "start" для нового компилятора.

В виде текста:

#property copyright "Copyright 2016 by ValPra"
#property show_inputs
//#property strict
#include <stdlib.mqh>
#include <stderror.mqh>

extern string OrderCmt = "SB-experiments";
extern int QuantityOfTicks = 30;

string Currpair;
int loopcount=0;
int array_time[30];
double array_ask[30];
double array_bid[30];

void init()
{
ArrayResize(array_ask, QuantityOfTicks);
ArrayResize(array_bid, QuantityOfTicks);
ArrayResize(array_time, QuantityOfTicks);
Currpair = Symbol();
Print ("========== Initialization complete! ===========\n");
return;
}

void start()
{
int sub_loopcount = 0;

if (loopcount < QuantityOfTicks)
{

array_ask[loopcount] = MarketInfo(Currpair, MODE_ASK);
array_bid[loopcount] = MarketInfo(Currpair, MODE_BID);
array_time[loopcount] = TimeCurrent();

Print ("Please wait until enough of ticks data has been gathered! Tick number ",loopcount," ASK=",array_ask[loopcount]," BID=",array_bid[loopcount]," Time=",array_time[loopcount]);
sub_loopcount = loopcount + 1;

if (sub_loopcount == QuantityOfTicks)
Print ("Trade started!");
}

if (loopcount >= QuantityOfTicks)
{
ArrayCopy(array_ask, array_ask, 0, 1, QuantityOfTicks - 1);
ArrayCopy(array_bid, array_bid, 0, 1, QuantityOfTicks - 1);
ArrayCopy(array_time, array_time, 0, 1, QuantityOfTicks - 1);
array_ask[QuantityOfTicks - 1] = MarketInfo(Currpair, MODE_ASK);
array_bid[QuantityOfTicks - 1] = MarketInfo(Currpair, MODE_BID);
array_time[QuantityOfTicks - 1] = TimeCurrent();
}
else
loopcount = loopcount + 1;

return;
}

void deinit()
{
Print (OrderCmt, " has been deinitialized!");
return;
}
Подсказываю:
MQL4 и MQL5, сАвсЭЭЭм нЭ много отличаются друг от друга.
С деталями отличий можно ознакомиться сравнив документацию.

Суть вопроса на самом деле, несколько друга, например:"Чёт не работает, а чЁ не пойму?!!"
Доку внимательно посмотри, по коду пройдись, с озвучиванием, для себя каждого оператора, для понимания, что происходит,
Ну отладчик в помощь.
Правда в 509 терминале его нет, но это не суть важно.
Для этого и был комментарий с озвучиванием операторов в слух.

Последний раз редактировалось _SERG_; 01.08.2016 в 13:34.
_SERG_ вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ValPra (01.08.2016)
01.08.2016, 15:26
Аватар для ValPra
ValPra Новичок форума
Регистрация: 12.11.2012 / Сообщений: 9
Поблагодарили 4 раз(а) / Репутация: 5
Благодарю Вас. Однако моя проблема сложнее. У меня MetaTrader 4.0 Build 988 и при нём MetaEditor 5.0 Build 1351, но это не mql5. Бывает ли такое, чтобы при MetaTrader 4.0 был MetaEditor для mql5?
ValPra вне форума Ответить с цитированиемОтветить с цитированием  
01.08.2016, 15:32
Аватар для ansol
ansol Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,017
Поблагодарили 855 раз(а) / Репутация: 841
Сообщение от ValPra Посмотреть сообщение
Благодарю Вас. Однако моя проблема сложнее. У меня MetaTrader 4.0 Build 988 и при нём MetaEditor 5.0 Build 1351, но это не mql5. Бывает ли такое, чтобы при MetaTrader 4.0 был MetaEditor для mql5?
Да всё верно, это версия от 4 июля, MQL4, только от это у вас индикатор или сова?
Все равно лучше использовать не start(), а OnTick(), а в индюке OnCalcalate()
Хрен их знает эту обратную совместимость, хотя должно вроде работать и так.
ansol вне форума Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ValPra (01.08.2016)
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 20:04. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO