任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 856 1...849850851852853854855856857858859860861862863...1178 新评论 Mikhail Toptunov 2015.03.02 09:54 #8551 //+------------------------------------------------------------------+ //| SSMA.mq4 | //| Copyright 2014, Vinin | //| http://vinin.ucoz.ru | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, Vinin" #property link "http://vinin.ucoz.ru" #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 8 #property indicator_plots 1 //--- plot average #property indicator_label1 "average" #property indicator_type1 DRAW_ARROW #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- input parameters extern int CountMA=200; extern int Period_start =1; extern int Period_shift =5; //--- indicator buffers double averageBuffer[]; double maxBuffer[]; double minBuffer[]; double Label1Buffer[]; double scBuf[][2]; double tmparray[],tmparrayF1[]; //double tmparrayD[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { // массив tmparrayF1[] является индикаторным буфером SetIndexBuffer(0,tmparrayF1); PlotIndexSetInteger(0,PLOT_ARROW,159); ArrayResize(tmparray, CountMA+1); // массив для рассчитанных SMA ArrayResize(scBuf, CountMA+1); // массив для значений повторений на цене ArrayResize(tmparrayF1, CountMA+1); // массив для перевода в одномерный массив для отображения на графике //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- if (rates_total<Period_start+Period_shift*CountMA+1) return(0); ArrayInitialize(tmparray,0); ArrayInitialize(scBuf,0); int limit=rates_total-prev_calculated; if (limit>1) limit=rates_total-(Period_start+Period_shift*CountMA+1); double min=-99999,max=99999, sum=0; int count, countMA,schet; for (int i=limit;i>=0;i--) { sum=0; count=0; countMA=0; // формируем массив со значения машек for (int j=0;j<Period_start+Period_shift*CountMA;j++) { sum+=(High[i+j]+Low[i+j])*0.5; count++; if (count==Period_start+Period_shift*countMA) { tmparray[countMA]=sum/count; countMA++; } } // Массив создан. Можно обрабатывать } //***** Рассчитать количество повторений SMA, в десятичном интервале. for (int b=0;b<CountMA;b++) { schet=0; for (int a =CountMA;a>=0;a--) { if(NormalizeDouble(tmparray[a],4)==NormalizeDouble(tmparray[b],4)&&tmparray[a]!=0) // 1.30000 = 1.30004 { scBuf[b][0]=schet; // количество повторений МА scBuf[b][1]=tmparray[b]; // Цена tmparray[a]=0; // Обнуляем посчитанную ячейку schet++; } } } ArraySort(scBuf,WHOLE_ARRAY,0,MODE_DESCEND); // Сортируем массив по убыванию for (int x=0;x<CountMA;x++) { tmparrayF1[x]=scBuf[x][1]; //переносим значения цены в одномерный массив, для отображения через индикатор } Print("rates_total = ",rates_total, "tmparray = ",tmparray[0] ,"KolVBuf ", scBuf[0][0],"+",scBuf[0][1] ,"/ ",scBuf[1][0],"+",scBuf[1][1] ,"/ ",scBuf[2][0],"+",scBuf[2][1] ,"/ ",scBuf[3][0],"+",scBuf[3][1] ,"/ ",scBuf[4][0],"+",scBuf[4][1] ,"/ ",scBuf[5][0],"+",scBuf[5][1] ); //--- return value of prev_calculated for next call return(rates_total); }我提前向管理员道歉,因为我是在耍流氓,类似的问题在另一个主题中https://www.mql5.com/ru/forum/154928,!)目标。- 创建一个包含2000个移动平均数值的数组。- 要用十字标记,由连接的SMA形成的密封。其结果是,十字架散乱无序,那里什么都没有。问题。事实证明,导致十字星的放置方式与SMA总量的位置不一致的错误,是在SMA阵列的形成过程中|...? Nikolay Grygoryev 2015.03.02 21:32 #8552 下午好。请告知如何解决这个问题。我需要做一个数组,一个例子是.............而它变成了一个完整的双关语,告诉我有什么问题。谢谢你。for(int i=1;i<=20;i++) { for(int j=1;j<=20;j++) { for(int q=1;q<=20;q++) { M5gooB[i,j,q]=false; Print("M5gooB ",i," ",j," ",q," false."); } } } Nikolay Grygoryev 2015.03.02 21:34 #8553 甚至就像这样bool M5gooB[50],M5gooS[50]; for(int i=1;i<=50;i++) { M5gooB[i]=false; }并仍然在日志中打印出一个混乱的分配结构 Victor Nikolaev 2015.03.03 03:26 #8554 laveosa:甚至就像这样并仍然在日志中打印出一个混乱的分配结构 也许这将有所帮助。bool M5gooB[50],M5gooS[50]; for(int i=0;i<50;i++) { M5gooB[i]=false; } Mikhail Toptunov 2015.03.03 10:21 #8555 谁知道如何设置一个点来代替十字架(DRAW_ARROW)?- 有一个指标,如何在全局变量 中设置一个点对象//--- plot average #property indicator_label1 "average" #property indicator_type1 DRAW_ARROW #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 Dina Paches 2015.03.03 12:49 #8556 Top2n:谁知道如何设置一个点来代替十字架(DRAW_ARROW)?- 有一个指标,如何把一个点对象放在全局变量中 在全球。 input uchar arrowsCodes0=159;//Wingdings: >= 33 or <= 255或uchar arrowsCodes0=159;//Wingdings: >= 33 or <= 255https://docs.mql4.com/ru/constants/objectconstants/wingdings在int OnInit() 中,那么它将是。SetIndexArrow(0,arrowsCodes0);// https://docs.mql4.com/ru/customind/setindexarrow类似这样的事情。 zed91 2015.03.03 13:09 #8557 为什么我的观点只画在历史上?在策略 测试器和wino图表窗口中只有历史,没有新的点被画出来代码。double sellArrowsBuffer[]; double buyArrowsBuffer[]; double closeArrowsBuffer[]; int jbnbHandle; void OnInit() { .... jbnbHandle = iCustom(_Symbol, _Period, "Projects\\iJBNB"); } int OnCalculate(...) { double cbearsColor[]; double cbears[]; int to_copy; if(prev_calculated > rates_total || prev_calculated <= 0) to_copy = rates_total; else to_copy = rates_total - prev_calculated + 1; if(CopyBuffer(jbnbHandle, 4, 0, to_copy, cbearsColor) != to_copy) return 0; if(CopyBuffer(jbnbHandle, 3, 0, to_copy, cbears) != to_copy) return 0; for(int i = 2; i < to_copy; i++) { if(cbearsColor[i] == 2 && cbearsColor[i - 1] == 1 && cbears[i] > 0.2 ) { sellArrowsBuffer[i] = open[i] - symPoint * 30; } } return rates_total; } Lopator 2015.03.03 13:47 #8558 你能告诉我,如何确保在实时拖动HLINE时,不抓到处于线附近的止损/止盈订单?我已经尝试禁用单次点击交易,但没有帮助。这种效果在策略测试器中并不存在。我想使用OnChartEvent(顺便说一下,我知道事件不在测试器上处理,只在继电器上处理?) [删除] 2015.03.03 14:05 #8559 下午好,该教程给出了一个专家的例子 https://book.mql4.com/ru/samples/expert你能告诉我为什么他在同一支蜡烛上做了几次购买/销售?收盘。看到止损 Alexey Viktorov 2015.03.03 14:36 #8560 Pyro: 你能告诉我,如何确保在实时拖动HLINE时,不抓到处于线附近的止损/止盈订单?我已经尝试禁用单次点击交易,但没有帮助。这种效果在策略测试器中并不存在。我想使用OnChartEvent(顺便说一下,我知道事件不在测试器上处理,只在继电器上处理?) 1...849850851852853854855856857858859860861862863...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我提前向管理员道歉,因为我是在耍流氓,类似的问题在另一个主题中https://www.mql5.com/ru/forum/154928,!)
目标。
- 创建一个包含2000个移动平均数值的数组。
- 要用十字标记,由连接的SMA形成的密封。
其结果是,十字架散乱无序,那里什么都没有。
问题。
事实证明,导致十字星的放置方式与SMA总量的位置不一致的错误,是在SMA阵列的形成过程中|...?
下午好。请告知如何解决这个问题。我需要做一个数组,一个例子是.............而它变成了一个完整的双关语,告诉我有什么问题。谢谢你。
甚至就像这样
并仍然在日志中打印出一个混乱的分配结构
甚至就像这样
并仍然在日志中打印出一个混乱的分配结构
也许这将有所帮助。
谁知道如何设置一个点来代替十字架(DRAW_ARROW)?
- 有一个指标,如何在全局变量 中设置一个点对象
谁知道如何设置一个点来代替十字架(DRAW_ARROW)?
- 有一个指标,如何把一个点对象放在全局变量中
在全球。
或
https://docs.mql4.com/ru/constants/objectconstants/wingdings
在int OnInit() 中,那么它将是。
SetIndexArrow(0,arrowsCodes0);// https://docs.mql4.com/ru/customind/setindexarrow
类似这样的事情。
为什么我的观点只画在历史上?在策略 测试器和wino图表窗口中只有历史,没有新的点被画出来
代码。
下午好,该教程给出了一个专家的例子 https://book.mql4.com/ru/samples/expert
你能告诉我为什么他在同一支蜡烛上做了几次购买/销售?
收盘。看到止损
你能告诉我,如何确保在实时拖动HLINE时,不抓到处于线附近的止损/止盈订单?我已经尝试禁用单次点击交易,但没有帮助。这种效果在策略测试器中并不存在。我想使用OnChartEvent(顺便说一下,我知道事件不在测试器上处理,只在继电器上处理?)