//+------------------------------------------------------------------+//| CheckLastBar.mq5 |//| Copyright 2010, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2010, MetaQuotes Software Corp."#property link "http://www.mql5.com"#property version "1.00"//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---if(isNewBar())
{
PrintFormat("Новый бар: %s",TimeToString(TimeCurrent(),TIME_SECONDS));
}
}
//+------------------------------------------------------------------+//| Возвращает true, если появился новый бар для пары символ/период |//+------------------------------------------------------------------+bool isNewBar()
{
//--- в статической переменной будем помнить время открытия последнего бараstaticdatetime last_time=0;
//--- текущее времяdatetime lastbar_time=SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);
//--- если это первый вызов функцииif(last_time==0)
{
//--- установим время и выйдем
last_time=lastbar_time;
return(false);
}
//--- если время отличаетсяif(last_time!=lastbar_time)
{
//--- запомним время и вернем true
last_time=lastbar_time;
return(true);
}
//--- дошли до этого места - значит бар не новый, вернем falsereturn(false);
}
//+------------------------------------------------------------------+
Можно ли торговать этим инструментом в понедельник? Хватит ли денег на открытие позиции? Какой размер убытка мы получим, если сработает Stop Loss? Как ограничить количество отложенных ордеров? Была ли выполнена торговая операция на этом баре или это было на предыдущем? Если торговый робот не может сделать подобные проверки, то любая прибыльная торговая система может превратиться в проигрышную. В этой статье показаны примеры проверок, которые пригодятся в любом эксперте.
intiMA(
string symbol, // имя символаENUM_TIMEFRAMES period, // периодint ma_period, // период усредненияint ma_shift, // смещение индикатора по горизонталиENUM_MA_METHOD ma_method, // тип сглаживанияENUM_APPLIED_PRICE applied_price // тип цены или handle
);
Alex,我如何将m_rates[1].low与m_rates[0].close进行比较?
m_rates[1].low=m_rates[0].close是否正确,一般来说,m_rates[0].close是尚未关闭的条形图的最后价格?
一般来说,在不使用指标的情况下,处理最后一栏的正确方法是什么?(CopyRates, CopyHigh)
Alex,我如何将m_rates[1].low与m_rates[0].close进行比较?
m_rates[1].low=m_rates[0].close会不会是正确的,一般来说,m_rates[0].close是尚未关闭的条形图的最后价格?
一般来说,在不使用指标的情况下,处理最后一栏的正确方法是什么?(CopyRates, CopyHigh)
你正确地写道,你应该使用CopyRates 或CopyHigh/Low/Close,等等来处理指标以外的价格数据。
你可以在帮助中或代码库中找到例子。
在编译代码时,出现了一条信息: 由于 行上的 类型转换,可能会丢失数据
当在专家顾问中使用该功能时,它在测试器中停止工作,请告诉我原因,代码取自文章https://www.mql5.com/ru/articles/22
在编译代码时,出现了一条信息: 由于 行上的 类型转换,可能会丢失数据
当在专家顾问中使用该功能时,它在测试器中停止工作,请告诉我原因,代码取自文章https://www.mql5.com/ru/articles/22
有趣的是,但我也有一个类似的。用双倍 数据填充一个 双倍数组。 在这一行它给出了同样的警告。
有趣的是,我也有一个类似的问题。用双倍 数据填充一个双倍 数组。它在这一行给出了同样的警告。
谢谢,我会试一试的。 我已经试过了转换,显式转换通过了,如果我通过(int)翻译一个掩码句柄,但这当然不适合我:-)
弄错了,需要 一个int。
谢谢你。