[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 993
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ну дак выводи слева у экрана - какая принципиальная разница? - у линии справа будет цена - слева текст мессаги..
или луч - но тогда усё слева выводи...
Это запрос заказчика :) Слева используются другие индикаторы, чтобы не накладывалось одно на другое.
Ну да ладно, проблему решу, всем спасибо за участие!
здравсвуйте. у меня такой вопрос: можно каким либо образом в МТ4 оптимизировать советник одновременно по нескольким валютным парам?
Вам никто не запрещает запустить несколько МТ4 одновременно с оптимизациями одного советника по разным парам.
Если кто запрещает, то скажите ему, что я разрешил
попробуй в инит сделть присвоение дельте
delta = 1; if (digits = 5) {delta = 10;}
а в тексте добавить
if (Bid <=Low&& Ask < High - 10*Point*delta)
наверно немноог не правильно, но смысл понятен
delta = Point; if (digits = 5) {delta = 10*Point;}
if (Bid <=Low&& Ask < High - 10*delta) хотя разницы не какой, но... а как же я япошкой?
и следующий вопрос в связи с динамическим спредом появилась необходимость высчитать средний спред за N тиков здесь вообще засада,
набросал следующие но не уверен что правильно:
int TicSpred=100;
double Spread[10000];
if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}
for (int q=TicSpred;q>0;q--){
if (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}
for (q=TicSpred;q>0;q--) {Spread[p]=Spread[p-1];}
Spread[0]=(Ask-Bid)/delta;
double CountedSpred;
for (q=0;q<bars;q++){CountedSpred=CountedSpred+Spread[p];}
double Аverspread=CountedSpred/TicSpred; но я не уверен что это совсем корректно, и кажеться для пятизнака не правильно считать будет
да нет вообще не правельно
мне нужно записывать в массив каждый следующий спред, и делить его на количество спредов в массиве, и как толшько количество записей привысит N то нужно удалять самый первый в массиве
может как то проще можно сделать?
Здесь еще ошибка закралась
if (Bid >=High ) // Закрытие Bay
return (11);
if (Bid <=Low && Ask <High - 1*delta )
return (21); // Закрытие Sell
if (trade == 1){
if ( Bid <=Low ) // Открытие Bay
Print ( " Bay = ",11);
return (10);}
if (Time == 1){
if (Bid<=Low&&Ask<High -1*delta ) // Открытие Srll
Print ( " Sell = ",21);
return (20);}
return; // Если время не гуд то не открываем нечего а просто выходим
данные следующие переменные High и Low известны( я принтом проверил) и показывают цены условия такие:
1.если бай > High то посылаем 10 команду ( закрытие бай)
2. если бай< Low и при этом аск меньше High на 1 пункт то закрываем сел командой ретурн 11
если переменная Time == 1 то:
3.если Бид меньше или равно Low и при этом Аск меньше High хотябы на один пункт то открываем Бай
4. если бид больше или равно High то открываем Sell?
но вот в тестирование открывается все время только бай, напоминаю что данная программа полностью из учебника я меняю только торговые критерии соответственно команды 10, 20 все стандартное прикреплю на всякий случай те функции к которым идет обращение
Народ! Всем привет! Помогите!
Мне надо в функцию аллерт индикатора вписать временной интервал. типа всплывает окошечко при появлении сигнала и мы видим там с какого графика этот сигнал. М15 например.
искал на сайте но ничего не нахожу подобного.
Народ! Всем привет! Помогите!
Мне надо в функцию аллерт индикатора вписать временной интервал. типа всплывает окошечко при появлении сигнала и мы видим там с какого графика этот сигнал. М15 например.
искал на сайте но ничего не нахожу подобного.
вообщем вот эта функция
//--------------------------------------------------------------------
// Criterion.mqh
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------- 1 --
// Функция вычисления торговых критериев.
// Возвращаемые значения:
// 10 - открытие Buy
// 20 - открытие Sell
// 11 - закрытие Buy
// 21 - закрытие Sell
// 0 - значимых критериев нет
// -1 - используется другой финансовый инструмент
//--------------------------------------------------------------- 2 --
// Внешние переменные:
//--------------------------------------------------------------- 3 --
int Criterion() // Пользовательская функция
{
//----------------------------------------------------------------4----
string Sym="________";
if (Sym!=Symbol()) // Если не наш фин. инструмент
{
Inform(16); // Сообщение..
return(-1);} // .. и выход
delta= Point;
if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY", 0) != -1))
delta= Point *10;
int Digital=MarketInfo(Symbol(),12);
//--------------------------------------------------------------- 5 --
// Параметры технич. индикат:
bool trade;
if (Begin>End && (Hour()>Begin-1 || Hour()<End)){trade=1;}
if (Begin<End && (Hour()>Begin-1 && Hour()<End)){trade=1;}
{if (trade==0 && mag!=Mag) return(0);}
// --------------------------Считаем средний спред-----------------------
if (!IsTesting() || IsVisualMode() || !IsOptimization())
{
int TicSpred=100;
double Spread[10000];
if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}
for (int q=TicSpred;q>0;q--){
if (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}
for (q=TicSpred;q>0;q--) {Spread[q]=Spread[q-1];}
Spread[0]=(Ask-Bid)/delta;
double CountedSpred;
for (q=0;q<TicSpred;q++){CountedSpred=CountedSpred+Spread[q];}
double Аverspread=CountedSpred/TicSpred;
}
//--------------------------------------------------------------- 5 --
// Вычисление торговых критериев
if (Bid >=High ) // Закрытие Bay
return (11);
if (Bid <=Low )
return (21); // Закрытие Sell
if (trade == 1){
if ( Bid <=Low &&Ask<High -0.5*MyPoint) // Открытие Bay
Print ( " Bay = ",11);
return (10);}
if (trade == 1){
if (Bid>=High ) // Открытие Srll
Print ( " Sell = ",21);
return (20);}
return; // Если время не гуд то не открываем нечего а просто выходим
//--------------------------------------------------------------- 6 --
return(0); // Выход из пользов. функции
}
//--------------------------------------------------------------- 7 --
считается что переменные Low и High уже определены и коректные равны ецне