Jump to content

Общие вопросы по языку MQL


Recommended Posts

Medvedrus
не мучай людей - приведи полный код индикатора - тебе желающие помогут. :wink:

 

 

if ( (Close>Open) && (Close[i+1]>Open[i+1]) && (Close[i+2]>Open[i+2]) &&

(((High[i+1]-Low[i+1])*(Close-Open))!=0.0) && (((High[i+2]-Low[i+2])*(Close[i+1]-Open[i+1]))!=0.0) &&

(((High-Low)*(High-Close))/((High[i+1]-Low[i+1])*(Close-Open))) <

(((High[i+1]-Low[i+1])*(High[i+1]-Close[i+1]))/((High[i+2]-Low[i+2])*(Close[i+1]-Open[i+1]))) )

{ ExtMapBuffer1 =1; }

 

Помогите напечатать индикатор по этому условию...

Заранее Спасибо!

Link to post
Share on other sites
  • Replies 7.6k
  • Created
  • Last Reply

Top Posters In This Topic

  • AntFX

    577

  • sergey1294

    569

  • Ugar68

    517

  • Programmer

    419

Top Posters In This Topic

Popular Posts

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

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

Основной советник выставляет "сигнальный" отложенный ордер далеко от текущей цены и каждую например, минуту модифицирует у него время экспирации: это может быть текущее время плюс 1 час, или плюс 1 су

Posted Images

Programmer
Вопрос: глобальные переменные действуют в рамках текущей сессии эксперта? или если на другом графике будет прикреплен тот же эксперт, у него будут свои гл. переменные?

 

Смотря какие глоб. переменные Вы имеете ввиду. Есть два вида:

1. Глоб. переменные в рамках одной MQL4-программы. Это переменные, объявленные вне всех ф-й программы. Они свои для каждой программы.

2. Глоб. переменные, работа с которыми осуществляется посредством группы ф-й GlobalVariableSet() и т.п. Такие переменные общие длля всех программ в рамках одного терминала.

Link to post
Share on other sites
Nickel

Товарищи, помогите определиться со следующим вопросом: Что лучше выбрать Тестер Стратегий в MT4 или заморочиться и изучить другие программы - MetaStock или ***** ?

Есть ли между ними принципиальные различия ?

Хотелось бы вкратце узнать о плюсах и минусах.

 

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

Link to post
Share on other sites
Igonter
Товарищи, помогите определиться со следующим вопросом: Что лучше выбрать Тестер Стратегий в MT4 или заморочиться и изучить другие программы - MetaStock или ***** ?

Есть ли между ними принципиальные различия ?

Хотелось бы вкратце узнать о плюсах и минусах.

 

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

Здесь форексный форум, поэтому программы для ФР типа ***** :) сразу выпадают из рассмотрения. А МетаСток безнадежно устарел морально, с ним и сравниваться как-то несерьезно. Для новичка не нужно ничего, кроме MT4. Да и "старичкам" далеко не всем нужно что-то еще.
Link to post
Share on other sites
Nickel

Спасибо за ответ.

А какие все таки преимущества у MQL4 ?

Я краем глаза глянул MACD-Sample в MT4 - синтаксис практически Cи-шный.

А например в МетаСтоке синтаксис и сам принцип написания программ сложнее или они практически не различаются ?

Может быть есть различия в технологии или возможности тестирования ?

 

Просто сейчас стою перед принципиальным вопросом, начать изучать MQL4 или другой тестер.

Причем естественно все хвалят программу, которой пользуются сами.

Link to post
Share on other sites
Igonter
Спасибо за ответ.

А какие все таки преимущества у MQL4 ?

Я краем глаза глянул MACD-Sample в MT4 - синтаксис практически Cи-шный.

А например в МетаСтоке синтаксис и сам принцип написания программ сложнее или они практически не различаются ?

Может быть есть различия в технологии или возможности тестирования ?

 

Просто сейчас стою перед принципиальным вопросом, начать изучать MQL4 или другой тестер.

Причем естественно все хвалят программу, которой пользуются сами.

В метастоке формульный язык. Им вообще далеко не все можно запрограммировать. Например, у меня есть парочка МТС под МТ4, которые в принципе нельзя перенести на Метасток - язык не поддерживает.

Омегу можете глянуть, WealthLab - но ничего принципиально нового там нет, разве что портфельный тестер в WealthLab. Зато сильно усложняется передача сигналов на исполнение в ДЦ, а в MT4 это непосредственно происходит. В общем, совет - не заморачиваться и MQL изучать.

Link to post
Share on other sites
Nickel

Понял. Спасибо. Убедили. =)

Кстати я заметил, что раздел форума совсем молодой, создан в августе.

Раньше не было тестера в МетаТрейдере или просто Раздел создали недавно ?

Link to post
Share on other sites
Trade
Смотря какие глоб. переменные Вы имеете ввиду. Есть два вида:

1. Глоб. переменные в рамках одной MQL4-программы. Это переменные, объявленные вне всех ф-й программы. Они свои для каждой программы.

2. Глоб. переменные, работа с которыми осуществляется посредством группы ф-й GlobalVariableSet() и т.п. Такие переменные общие длля всех программ в рамках одного терминала.

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

 

Др. словами я пишу советник, где бы он стоял на разных парах и эти переменные не пересекались. Я так понял, что в данном случае GlobalVariableSet() не подходит.

 

Файлами пользоваться не удобно.


Ваше благополучие зависит от Ваших собственных решений.

Единственное ограничение, которое налагается на наши способности - это наша неспособность признать собственные неограниченные возможности.

Link to post
Share on other sites
Shu
Понял, я пользовался GlobalVariableSet(), но мне нужны переменные, которые бы действовали внутри одной сессии (одной программы). И при чем переменные должны сохранять свои значения при следующем выполнении кода (при следующем тике).

конечно.. так и пиши

 
//+------------------------------------------------------------------+
#property copyright "`Shu"
#property link "[url="https://alpariforum.com/redirector.php?url=http%3A%2F%2FSovetnikShu.ru"]http://SovetnikShu.ru[/url]"
#property indicator_chart_window

bool яВижуВсё = false;

int start() {
  яВижуВсё = true;
  Ась();
  Ась();
}
void Ась() {
  if (яВижуВсё) Print("Офигеть!");
  яВижуВсё = false;
}

Link to post
Share on other sites
k005

подскажите плиз!!!!!!!!

 

я случайно перепутал High и Low в выражении

High[Highest(NULL,0,MODE_LOW,11,1)]

что в итоге у мну получилось?

как это толковать?


Коррекция обусловлена открытием твоей позиции

Link to post
Share on other sites
Shu
подскажите плиз!!!!!!!!

я случайно перепутал High и Low в выражении

High[Highest(NULL,0,MODE_LOW,11,1)]

что в итоге у мну получилось?

как это толковать?

 

а зачем это вообще толковать?? :-) функции Highest() нету.. :-?

Link to post
Share on other sites
Nickel

Товарищи, пользующиеся советниками, подскажите, пожалуйста, насколько стабильно они работают ?

Могут ли возникать сбои при получении котировок ?

Я вчера попробовал проверить встроенный советник - MovingAverage в процессе тестирования примерно 10% котировок были "красными", в хелпе написано, что на этом участке не подкачивались котировки более мелкого масшатаба. :crazy:

А может ли такое возникать в режиме реального времени, может ли это привести к печальным последствиям для депозита ?

 

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

Link to post
Share on other sites
Programmer
MovingAverage в процессе тестирования примерно 10% котировок были "красными", в хелпе написано, что на этом участке не подкачивались котировки более мелкого масшатаба. :crazy:

А может ли такое возникать в режиме реального времени, может ли это привести к печальным последствиям для депозита ?

 

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

Link to post
Share on other sites
Vi-ki

Пробую писать советника по пересечениям RSI

при компиляции дает ошибк в обоих строчках

// Торговые критерии

RSI_1_t=iRSI(NULL,0,Period_RSI_1,0,PRICE_CLOSE,0); // RSI_1

RSI_2_t=iRSI(NULL,0,Period_RSI_2,0,PRICE_CLOSE,0); // RSI_2


Богатый не тот у кого много денег, а тот кому хватает

Link to post
Share on other sites
Programmer
Пробую писать советника по пересечениям RSI

при компиляции дает ошибк в обоих строчках

// Торговые критерии

RSI_1_t=iRSI(NULL,0,Period_RSI_1,0,PRICE_CLOSE,0); // RSI_1

RSI_2_t=iRSI(NULL,0,Period_RSI_2,0,PRICE_CLOSE,0); // RSI_2

 

По центру лишний нуль.

 

iRSI:

 

double iRSI( string symbol, int timeframe, int period, int applied_price, int shift)

Link to post
Share on other sites
Belyaichik

Здравствуйте, уважаемые! Помогите, пожалуйста, с таким вопросом: как можно сложить два индикатора от разных валютных пар. Например: стохастик от eur/usd и стохастик от usd/jpy. Нигде не могу найти информацию по этому вопросу.

Заранее спасибо

Link to post
Share on other sites
~~SOM~~
Здравствуйте, уважаемые! Помогите, пожалуйста, с таким вопросом: как можно сложить два индикатора от разных валютных пар. Например: стохастик от eur/usd и стохастик от usd/jpy. Нигде не могу найти информацию по этому вопросу.

Заранее спасибо

Не вижу в этом смысла. Тем более для сильно коррелированных пар.

Link to post
Share on other sites
Belyaichik
Не вижу в этом смысла. Тем более для сильно коррелированных пар.

 

Хотелось бы просто узнать как работать с разными парами внутри одного индикатора?

Хочу проверить одну интересную теорию))

 

Если кто знает, подскажите, пожалуйста!

Link to post
Share on other sites
Shu
Хотелось бы просто узнать как работать с разными парами внутри одного индикатора?

Хочу проверить одну интересную теорию))

 

Если кто знает, подскажите, пожалуйста!

 

а какая разница??? получай нужные значения по нужным парам и все дела (конечно, в обзор рынка добавь только!)

Link to post
Share on other sites
demon_85

Здравствуйте всем!

Я новчек в этом деле поэтому кто нибуть, мог бы мне помоч в создании эксперта!

мне необходимо просто что бы- открывалась позиция если нет открытой с стоп лоссом и тейк профитом, и если цена пошла по стоп лоссу недохоя до него пройдя 10 пунктов открылась еще одна позиция в другую сторону, и в конце концов все позиции закрылись одновременно.

ПОМОГИТЕ!!!

ЗАРАНЕЕ СПАСИБО!!!

Link to post
Share on other sites
vadd

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

Что вообще объединяет перечисленные выше операции с точки зрения доступности программисту, кроме ОрдерсХистори? Можно ли как-то воспользоваться приходящим с сервера тикетом напрямую?

Link to post
Share on other sites
Roger
Подскажите, пожалуйста, какими минимальными программными средствами можно получить данные о завершении какой-то операции с сервером (открытие ордера, срабатывание отложенного ордера, закрытие ордера, модификация ордера)? Пока что ничего радостного не нашел, неужели единственное решение - просматривание списка ордеров с каждым тиком? Неаккуратненько как-то....

Что вообще объединяет перечисленные выше операции с точки зрения доступности программисту, кроме ОрдерсХистори? Можно ли как-то воспользоваться приходящим с сервера тикетом напрямую?

из справки:

 

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)

Основная функция, используемая для открытия позиции или установки отложенного ордера.

Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().

 

Вот это и проверяй.

Link to post
Share on other sites
MW

Добрый...

 

Столкнулся с такой замарочкой:

Есть переменная типа int Count1 которая наполняется счетчиком Count1++

Для вычисления процента я немогу ее поделить на себе подобную Count2++ , но умножается... почему так?


Жми быка! Дави медведя!

Link to post
Share on other sites
Nickel

Поделить можете, но при этом результат надо определить как double:

 

Например int Сount1 = 50;

int Count2=25;

double ResultPercent = (Count2/Count1)*100; // в этом случае результат будет 50 (0,5*100)

А если определить результат как целый тип, то

int ResultPercent = (Count2/Count1)*100; // в этом случае результат будет 0 (0*100), так как 0,5 округлится до 0.

Link to post
Share on other sites
MW
Поделить можете, но при этом результат надо определить как double:

 

Например int Сount1 = 50;

int Count2=25;

double ResultPercent = (Count2/Count1)*100; // в этом случае результат будет 50 (0,5*100)

А если определить результат как целый тип, то

int ResultPercent = (Count2/Count1)*100; // в этом случае результат будет 0 (0*100), так как 0,5 округлится до 0.

Спасибо...я это знал))


Жми быка! Дави медведя!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...