Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
привет младен или кто угодно,
Я заметил, что платформа mt4 имеет некоторые индикаторы по умолчанию (хотя некоторые повторяются в части пользовательских индикаторов,), но код, я думаю, не совсем тот же самый, как получить или увидеть код этих индикаторов по умолчанию, спасибо большое за информацию.
привет mladen или кто-либо другой, я заметил, что платформа mt4 имеет некоторые индикаторы по умолчанию (хотя некоторые повторяются в части пользовательских индикаторов,), но код, я думаю, не совсем тот же самый, как получить или увидеть код этих индикаторов по умолчанию, спасибо большое за информацию.
Вы не можете
Это встроенные индикаторы (выполняются непосредственно в терминале).
кажется, что эти встроенные индикаторы лучше, чем те, которые находятся в пользовательской сессии индикаторов в функции, правда, нет способа узнать их код?
Кто-то спросил меня, как я использую мультитаймфрейминг из одного файла (когда нет возможности вызвать встроенные функции).
Вот один простой пример и некоторые пояснения к нему
_____________________________
Прилагаемый индикатор ведет себя как 3 индикатора в одном, и в коде вы найдете комментарии, что и когда делается. Надеюсь, это поможет некоторым людям понять, как можно сделать однофайловый корректный мультитаймфреймовый индикатор (который, помимо всего прочего, всегда будет рассчитывать правильное количество баров, не предполагая, сколько баров в целевом таймфрейме было изменено).
Таким образом, этот простой однофайловый мультитаймфреймовый индикатор может быть легко использован в качестве шаблона для мультитаймфреймовых индикаторов
привет младен,
знаете ли вы, возможно ли и как сделать iStochasticOnArray? есть ли шаблон или формула для этого? спасибо за информацию.
Привет, Младен, не знаете ли вы, возможно ли и как сделать iStochasticOnArray? Есть ли шаблон или формула для этого? Спасибо за информацию.
kenwa
Не существует такой вещи, как встроенная функция. В этих постах вы можете увидеть, как может быть написана функция для этого и как ее можно использовать: https: //www.mql5.com/en/forum/177239/page34
Привет, Младен:
немного глубоко для меня
Например, double iStoch(double priceR, double priceH, double priceL, int period, int slowing, int i, int instanceNo=0) - это удвоение внутри double? Этот метод может уменьшить занимаемый indexbuffer в mq4?
Эта функция кажется мне немного странной :
stoch = iStoch(rsi,rsi,rsi,StoPeriod,StoSlowing,i);
Спасибо за разъяснения.
Я не знаю, почему он не принимает другой wav-файл.
Если вы изменили его в коде, он должен принять его.
Чтобы повторить его 5 раз, вы должны поместить его в цикл, но это может вызвать некоторые проблемы (если звуковой файл слишком длинный).Вот код, который я использовал (я знаю очень мало о кодировании, чтобы знать, как делать циклы):
//+-----------------------------------------------------------------
#property copyright "https://www.forex-tsd.com"
#property link "https://www.forex-tsd.com"
#property indicator_chart_window
//-----------------------------------------------------------------
extern int alertsForNotOlderThan = 300;
extern int alertsForMagicNumber = 0;
extern string alertsForSymbol = "";
extern bool alertsOn = true;
extern bool alertsSound = true;
extern bool alertsMessage = true;
extern bool alertsNotification = false;
extern bool alertsEmail = false;
//-------------------------------------------------------
//
//-------------------------------------------------------
//
//
//
//
//
int tickets[];
bool alerted[];
string symbols[];
int types[];
int times[];
int init() { return(0); }
int deinit() { return(0); }
int start()
{
//
//
// собираем данные для заказов
//
//
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS)) continue;
if (alertsForSymbol != "" && alertsForSymbol!=OrderSymbol()) continue;
if (alertsForMagicNumber != 0 && alertsForMagicNumber!=OrderMagicNumber()) continue;
if (alertsForNotOlderThan < (TimeCurrent()-OrderOpenTime()) continue;
//
//
//
//
//
for (int k=ArraySize(tickets); k>0; k--)
if (OrderTicket()==tickets[k-1]) break;
if (k==0)
{
int size = ArraySize(tickets)+1;
ArrayResize(tickets,size); tickets = OrderTicket();
ArrayResize(alerted,size); alerted = false;
ArrayResize(symbols,size); symbols = OrderSymbol();
ArrayResize(types ,size); types = OrderType();
ArrayResize(times ,size); times = OrderOpenTime();
}
}
//
//
// проверяем, нужно ли оповещать о каком-то заказе.
//
//
for (i=ArraySize(tickets)-1; i>=0; i--)
{
string type = "";
if (!alerted)
{
alerted = true;
switch (types)
{
case OP_BUY : type = "buy"; break;
case OP_SELL : type = "sell"; break;
case OP_BUYSTOP : type = "buy stop"; break;
case OP_BUYLIMIT : type = "лимит покупки"; break;
case OP_SELLSTOP : type = "sell stop"; break;
case OP_SELLLIMIT : type = "sell limit"; break;
}
doAlert(type+" открыта при : "+TimeToStr(times,TIME_DATE|TIME_SECONDS)+" для "+symbols);
}
}
return(0);
}
//-------------------------------------------------------
//
//-------------------------------------------------------
//
//
//
//
//
void doAlert(string doWhat)
{
строковое сообщение;
message = doWhat;
if (alertsMessage) Alert(message);
if (alertsEmail) SendMail(StringConcatenate(Symbol()," order alerts "),message);
if (alertsNotification) SendNotification("order alerts "+message);
if (alertsSound) PlaySound("hallelujah.wav");
}
но при срабатывании просто звонит обычное оповещение.
Мысль: если я не могу заставить PlaySound меняться, может быть, вы могли бы закодировать цикл, который бы воспроизводил короткое обычное оповещение каждые 1 секунду в течение 10 раз? - По крайней мере, это сделало бы гораздо больше, чтобы разбудить меня, чем просто один обычный звук оповещения....
Спасибо
Вот код, который я использовал (я знаю очень мало о кодировании, чтобы знать, как делать циклы):
//+-----------------------------------------------------------------
#property copyright "https://www.forex-tsd.com"
#property link "https://www.forex-tsd.com"
#property indicator_chart_window
//-----------------------------------------------------------------
extern int alertsForNotOlderThan = 300;
extern int alertsForMagicNumber = 0;
extern string alertsForSymbol = "";
extern bool alertsOn = true;
extern bool alertsSound = true;
extern bool alertsMessage = true;
extern bool alertsNotification = false;
extern bool alertsEmail = false;
//-------------------------------------------------------
//
//-------------------------------------------------------
//
//
//
//
//
int tickets[];
bool alerted[];
string symbols[];
int types[];
int times[];
int init() { return(0); }
int deinit() { return(0); }
int start()
{
//
//
// собираем данные для заказов
//
//
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS)) continue;
if (alertsForSymbol != "" && alertsForSymbol!=OrderSymbol()) continue;
if (alertsForMagicNumber != 0 && alertsForMagicNumber!=OrderMagicNumber()) continue;
if (alertsForNotOlderThan < (TimeCurrent()-OrderOpenTime()) continue;
//
//
//
//
//
for (int k=ArraySize(tickets); k>0; k--)
if (OrderTicket()==tickets[k-1]) break;
if (k==0)
{
int size = ArraySize(tickets)+1;
ArrayResize(tickets,size); tickets = OrderTicket();
ArrayResize(alerted,size); alerted = false;
ArrayResize(symbols,size); symbols = OrderSymbol();
ArrayResize(types ,size); types = OrderType();
ArrayResize(times ,size); times = OrderOpenTime();
}
}
//
//
// проверяем, нужно ли оповещать о каком-то заказе.
//
//
for (i=ArraySize(tickets)-1; i>=0; i--)
{
string type = "";
if (!alerted)
{
alerted = true;
switch (types)
{
case OP_BUY : type = "buy"; break;
case OP_SELL : type = "sell"; break;
case OP_BUYSTOP : type = "buy stop"; break;
case OP_BUYLIMIT : type = "лимит покупки"; break;
case OP_SELLSTOP : type = "sell stop"; break;
case OP_SELLLIMIT : type = "sell limit"; break;
}
doAlert(type+"" открыта при : "+TimeToStr(times,TIME_DATE|TIME_SECONDS)+" для "+symbols);
}
}
return(0);
}
//-------------------------------------------------------
//
//-------------------------------------------------------
//
//
//
//
//
void doAlert(string doWhat)
{
строковое сообщение;
message = doWhat;
if (alertsMessage) Alert(message);
if (alertsEmail) SendMail(StringConcatenate(Symbol()," order alerts "),message);
if (alertsNotification) SendNotification("order alerts "+message);
if (alertsSound) PlaySound("hallelujah.wav");
}
но при срабатывании просто звонит обычное оповещение.
Мысль: если я не могу заставить PlaySound меняться, может быть, вы могли бы закодировать цикл, который бы воспроизводил короткое обычное оповещение каждые 1 секунду в течение 10 раз? - По крайней мере, это сделает гораздо больше, чтобы разбудить меня, чем один обычный звук оповещения ... ... .
СпасибоPerson77,
Раньше это работало так: перейдите на открытый график, затем перейдите в tools/options/events, затем в alert просто измените wav. на тот, который вы хотите, но я не делал этого некоторое время, поэтому не уверен, что это все еще работает, и убедитесь, что wav файл, который вы используете, находится в папке sounds.
mrtools - спасибо: это сработало отлично!