初学者的问题 MQL5 MT5 MetaTrader 5 - 页 605 1...598599600601602603604605606607608609610611612...1503 新评论 Vladimir Karputov 2016.08.22 07:24 #6041 Alexander Antoshkin: 你好,弗拉基米尔。我一定是把我的问题表述错了。我不需要一个子窗口,指标应该作为一个标准图表放在价格图表上我把它看作是一个例子,并试图理解。我希望安装在图表上的指标有自己的编号,这样就可以使用 "添加 "按钮在图表上创建必要数量的副本.....。我想删除一个由 "十字 "按钮选择的........(我还不想描述它们))什么时候应该在主图表窗口中添加一个指标子窗口[in] 图表子窗口编号。要为一个新窗口添加指标,参数必须比最后一个现有窗口的索引多一个,即等于CHART_WINDOWS_TOTAL。如果参数值超过CHART_WINDOWS_TOTAL,将不创建新窗口,不添加指标。你不能在OnInit()中添加指标--因为在这个阶段专家还没有形成。但是函数--OnTick()是专家顾问完全工作的标志。//+------------------------------------------------------------------+ //| 0000.mq5 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" input int MA_Period=21; input int MA_Shift=0; input ENUM_MA_METHOD MA_Method=MODE_SMA; //--- variables int MA_handle=INVALID_HANDLE; bool first_start=false; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { Print(__FUNCTION__,", first_start = ",first_start); MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",MA_Period,MA_Shift,MA_Method,PRICE_CLOSE); if(MA_handle==INVALID_HANDLE) return(INIT_FAILED); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| "Tick" event handler function | //+------------------------------------------------------------------+ void OnTick() { //--- if(!first_start) { if(AddIndicator()) //попробуем добавить индикатор на график first_start=true; } } //+------------------------------------------------------------------+ //| Функция проверки и добавления индикатора на график | //+------------------------------------------------------------------+ bool AddIndicator() { //--- сбросим код ошибки ResetLastError(); //--- накладываем индикатор на график int subwindow=0; PrintFormat("Добавляем индикатор на окно %d графика",subwindow); if(!ChartIndicatorAdd(0,subwindow,MA_handle)) { PrintFormat("Не удалось добавить индикатор на окно %d графика. Код ошибки %d", subwindow,GetLastError()); } return(true); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ 并重写AddIndicator()函数,使其在尝试添加指标失败时返回false。 [删除] 2016.08.22 07:26 #6042 Alexander Antoshkin: 你好,弗拉基米尔。我一定是把我的问题表述错了。我不需要一个子窗口,指标应该作为一个标准图表放在价格图表上我把它看作是一个例子,并试图理解。我希望安装在图表上的指标有自己的编号,这样就可以使用 "添加 "按钮在图表上创建必要数量的副本.....。我想删除一个由 "十字架 "按钮选择的........(有很多幻想,我还不想描述它们))。 指标可以有一个名字,如果你喜欢数字,就让它成为一个数字。然而,该号码将不是一个数字,而是一个文本。你想要一个自定义的控制面板,允许你从一个或多个指标中添加任何指标号码吗? Aleksey Vyazmikin 2016.08.22 14:41 #6043 你能告诉我如何在一个月内按日号和按周号分别进行过滤吗? 在日内我已经这样做了。bool TimeStart=false;int hour=12;//--Фильтр по ремени открытия бара внутри дняif (TimeStart==true){ datetime Open_timePos=iTime(_Symbol,0,0); MqlDateTime str1; TimeToStruct(Open_timePos,str1); str1.hour=hour; str1.min=0; str1.sec=0; datetime start_time=StructToTime(str1); if (start_time>iTime(_Symbol,0,0)) { BuyPrIMA=false; SellPrIMA=false; } Questions from Beginners MQL5 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 市场关闭 [删除] 2016.08.22 15:31 #6044 -Aleks-: 你能告诉我如何在一个月内按日号和按周号分别进行过滤吗? 在日内我已经这样做了。int НомерДНЯвМесяце=TimeDay(iTime(_Symbol,0,0));int НомерДняНедели=TimeDayOfWeek(iTime(_Symbol,0,0)); int НомерНеделиВмесяце=NormalizeDouble(НомерДНЯвМесяце/7,0); [删除] 2016.08.22 15:35 #6045 new-rena: 他问的是每月的那一周 [删除] 2016.08.22 15:37 #6046 pako: 他问的是每月的那一周我在那里做了所有三个选项。请问他想用哪一个作为基础?这个?int НомерНеделиВмесяце=NormalizeDouble(НомерДНЯвМесяце/7,0); [删除] 2016.08.22 15:38 #6047 new-rena: 我在那里做了所有三个选项。请说明。每月有五到六个星期,今天是本月的第四个星期str.day 每月的日期str.day_of_weekday Aleksey Vyazmikin 2016.08.22 15:40 #6048 new-rena: 谢谢你。 [删除] 2016.08.22 15:42 #6049 pako: 一个月有四个五周,今天是这个月的第四周 我明白了,所以他想核算上个月29日(比如说星期一)到本月31日(比如说也是星期一)的这种性质的星期。这是一个多月的时间。计算这样的周数是不符合逻辑的。如果不是这样,那么这个星期就不是一个完整的星期。没有,没有点.... [删除] 2016.08.22 15:42 #6050 new-rena:我在那里做了所有三个选项。请问他想用哪一个作为基础?这个? 那是不行的。 1...598599600601602603604605606607608609610611612...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好,弗拉基米尔。
我一定是把我的问题表述错了。
我不需要一个子窗口,指标应该作为一个标准图表放在价格图表上
我把它看作是一个例子,并试图理解。
我希望安装在图表上的指标有自己的编号,这样就可以使用 "添加 "按钮在图表上创建必要数量的副本.....。我想删除一个由 "十字 "按钮选择的........(我还不想描述它们))
什么时候应该在主图表窗口中添加一个指标
子窗口
[in] 图表子窗口编号。要为一个新窗口添加指标,参数必须比最后一个现有窗口的索引多一个,即等于CHART_WINDOWS_TOTAL。如果参数值超过CHART_WINDOWS_TOTAL,将不创建新窗口,不添加指标。
你不能在OnInit()中添加指标--因为在这个阶段专家还没有形成。但是函数--OnTick()是专家顾问完全工作的标志。
并重写AddIndicator()函数,使其在尝试添加指标失败时返回false。你好,弗拉基米尔。
我一定是把我的问题表述错了。
我不需要一个子窗口,指标应该作为一个标准图表放在价格图表上
我把它看作是一个例子,并试图理解。
我希望安装在图表上的指标有自己的编号,这样就可以使用 "添加 "按钮在图表上创建必要数量的副本.....。我想删除一个由 "十字架 "按钮选择的........(有很多幻想,我还不想描述它们))。
bool TimeStart=false;
int hour=12;
//--Фильтр по ремени открытия бара внутри дня
if (TimeStart==true)
{
datetime Open_timePos=iTime(_Symbol,0,0);
MqlDateTime str1;
TimeToStruct(Open_timePos,str1);
str1.hour=hour;
str1.min=0;
str1.sec=0;
datetime start_time=StructToTime(str1);
if (start_time>iTime(_Symbol,0,0))
{
BuyPrIMA=false;
SellPrIMA=false;
}
你能告诉我如何在一个月内按日号和按周号分别进行过滤吗? 在日内我已经这样做了。
他问的是每月的那一周
我在那里做了所有三个选项。请问他想用哪一个作为基础?
这个?
我在那里做了所有三个选项。请说明。
每月有五到六个星期,今天是本月的第四个星期
str.day 每月的日期
str.day_of_weekday
一个月有四个五周,今天是这个月的第四周
我在那里做了所有三个选项。请问他想用哪一个作为基础?
这个?