[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 295 1...288289290291292293294295296297298299300301302...652 新评论 Виктор 2011.10.26 16:31 #2941 isCloseLastPosByStop - 返回通过止损平仓的标志 isCloseLastPosByTake - 返回通过获利平仓的标志。 Warstein 2011.10.26 17:51 #2942 帮助修复,标准的stockistik,添加了一个 不能正常工作的警报,无法找出错误的地方....。 谢谢 //+------------------------------------------------------------------+ //| Stochastic.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //+------------------------------------------------------------------+ #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_color2 Red #property indicator_width1 1 #property indicator_width2 1 #property indicator_level1 20 #property indicator_level2 50 #property indicator_level3 80 #property indicator_levelcolor DimGray //---- input parameters //+------------------------------------------------------------------+ extern bool Alerts = true; //+------------------------------------------------------------------+ extern int AlertBar = 1; //+------------------------------------------------------------------+ extern int KPeriod = 5; //+------------------------------------------------------------------+ extern int DPeriod = 2; //+------------------------------------------------------------------+ extern int Slowing = 3; //+------------------------------------------------------------------+ extern int MAMethod = 3; // 0=SMA,1=EMA,2=SSMA,3=LWMA //+------------------------------------------------------------------+ //-------------------------------------------------------------------+ //----- datetime LastAlertTime = -333; //---- Buffers double MainBuffer[]; double SignalBuffer[]; double HighesBuffer[]; double LowesBuffer[]; //---- int MAMode; string strMAType; //---- int draw_begin1=0; int draw_begin2=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- 2 additional buffers are used for counting. IndicatorBuffers(4); //---- indicator lines SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); SetIndexBuffer(0,MainBuffer); SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); SetIndexBuffer(1,SignalBuffer); //---- SetIndexBuffer(2,HighesBuffer); SetIndexBuffer(3,LowesBuffer); //---- switch(MAMethod) { case 1: strMAType="EMA"; MAMode=MODE_EMA; break; case 2: strMAType="SMMA"; MAMode=MODE_SMMA; break; case 3: strMAType="LWMA"; MAMode=MODE_LWMA; break; default: strMAType="SMA"; MAMode=MODE_SMA; break; } //---- name for DataWindow and indicator subwindow label short_name="Stochastic ("+KPeriod+","+DPeriod+","+Slowing+","+strMAType+")"; IndicatorShortName(short_name); SetIndexLabel(0,short_name); SetIndexLabel(1,"Signal"); //---- draw_begin1=KPeriod+Slowing; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); //---- return(0); } //+------------------------------------------------------------------+ //| Stochastic oscillator | //+------------------------------------------------------------------+ int start() { int i,k; int counted_bars=IndicatorCounted(); double price; //---- if(Bars<=draw_begin2) return(0); //---- initial zero if(counted_bars<1) { for(i=1;i<=draw_begin1;i++) MainBuffer[Bars-i]=0; for(i=1;i<=draw_begin2;i++) SignalBuffer[Bars-i]=0; } //---- minimums counting i=Bars-KPeriod; if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) { double min=1000000; k=i+KPeriod-1; while(k>=i) { price=Low[k]; if(min>price) min=price; k--; } LowesBuffer[i]=min; i--; } //---- maximums counting i=Bars-KPeriod; if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) { double max=-1000000; k=i+KPeriod-1; while(k>=i) { price=High[k]; if(max<price) max=price; k--; } HighesBuffer[i]=max; i--; } //---- %K line i=Bars-draw_begin1; if(counted_bars>draw_begin1) i=Bars-counted_bars-1; while(i>=0) { double sumlow=0.0; double sumhigh=0.0; for(k=(i+Slowing-1);k>=i;k--) { sumlow+=Close[k]-LowesBuffer[k]; sumhigh+=HighesBuffer[k]-LowesBuffer[k]; } if(sumhigh==0.0) MainBuffer[i]=100.0; else MainBuffer[i]=sumlow/sumhigh*100; i--; } //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; //---- signal line is simple movimg average for(i=0; i<limit; i++) SignalBuffer[i]=iMAOnArray(MainBuffer,Bars,DPeriod,0,MAMethod,i); //+------------------------------------------------------------------+ if(Alerts) { if(AlertBar >= 0 && Time[0] > LastAlertTime) { if(MainBuffer[i+AlertBar] > SignalBuffer[i+AlertBar] && MainBuffer[i+AlertBar+1] <= SignalBuffer[i+AlertBar+1]) { Alert("Stochastic BULL! ",Symbol()," TF: ",Period()); } if(MainBuffer[i+AlertBar] < SignalBuffer[i+AlertBar] && MainBuffer[i+AlertBar+1] >= SignalBuffer[i+AlertBar+1]) { Alert("Stochastic BEAR! ",Symbol()," TF: ",Period()); } } LastAlertTime = Time[0]; } //---- return(0); } //+------------------------------------------------------------------+ Cmu4 2011.10.26 21:27 #2943 我想做一个多MA。也就是说,在图表上应该可以看到2个MAs--一个是当前工具,另一个是第二个工具。 有一个将它们相互绑定的问题,因为每种工具的波动性和多重性点是不同的。我想不出什么有用的东西....。帮助!:) Всеволод 2011.10.27 00:42 #2944 Cmu4: 我想做一个多MA。也就是说,在图表上应该可以看到2个MAs--一个是当前工具,另一个是第二个工具。 有一个将它们相互绑定的问题,因为每种工具的波动性和多重性点是不同的。我想不出什么有用的东西....。帮助!:) 对于子窗口,我希望它不会造成问题。 这取决于任务,你可以在两个图表上都取一个具有大周期的MA,并将其作为基础。 例如,工作MA的周期为12。对于主要符号,我们按原样绘制。 对于其他符号,我们找到MA12和60之间的差值;这个差值乘以系数应该加到主符号的MA60上。 [删除] 2011.10.27 03:55 #2945 artmedia70:而且要说明的是?第一个头寸应该从那些开放的(市场中)还是已经关闭的头寸中选择?如果第一个职位是三年前开设的呢?它 需要被选中吗? 而这一切是为了什么呢?要从 开放的 职位中选择第一个。 有必要检查第一次开仓和最后一次开仓之间的点位 距离。 ZZZEROXXX 2011.10.27 05:45 #2946 forexnew:试着用IsConnected() - 没有影响。有什么建议吗? 也许可以看看还有什么东西返回IsTradeAllowed()? 请帮助。我试图根据附在条形图上的两个点建立一个趋势,从最后一个点开始向前推进N条。即传入 - 第一个和第二个点的时间价格,和N表示为未来的条数(复选框梁=假)。如果第二个点,假设,位于从当前条形0开始的条形1上,而我必须从它提前10个条形抽出,我如何从未来条形的时间和价格计算? Alexey Bondarenko 2011.10.27 05:51 #2947 请帮助。 我怎样才能找出时间高[3]? PapaYozh 2011.10.27 05:52 #2948 alex11230: 请帮助。 我怎样才能找出时间高[3]? 时间[3] Warstein 2011.10.27 08:47 #2949 Roll: 试试吧。 谢谢你 :) Vitaliy Andreischev 2011.10.27 08:51 #2950 如何描写。 / 在字符串中? 比如说。 string path=TerminalPath()+"/logs/"+tekTime+".log"。 给出了一个错误,如果你删除斜线"/"的话 string path=TerminalPath()+"logs "+tekTime+".log"。 - 没有错误。 1...288289290291292293294295296297298299300301302...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
isCloseLastPosByTake - 返回通过获利平仓的标志。
帮助修复,标准的stockistik,添加了一个 不能正常工作的警报,无法找出错误的地方....。
谢谢
我想做一个多MA。也就是说,在图表上应该可以看到2个MAs--一个是当前工具,另一个是第二个工具。
有一个将它们相互绑定的问题,因为每种工具的波动性和多重性点是不同的。我想不出什么有用的东西....。帮助!:)
我想做一个多MA。也就是说,在图表上应该可以看到2个MAs--一个是当前工具,另一个是第二个工具。
有一个将它们相互绑定的问题,因为每种工具的波动性和多重性点是不同的。我想不出什么有用的东西....。帮助!:)
对于子窗口,我希望它不会造成问题。
这取决于任务,你可以在两个图表上都取一个具有大周期的MA,并将其作为基础。
例如,工作MA的周期为12。对于主要符号,我们按原样绘制。
对于其他符号,我们找到MA12和60之间的差值;这个差值乘以系数应该加到主符号的MA60上。
而且要说明的是?第一个头寸应该从那些开放的(市场中)还是已经关闭的头寸中选择?如果第一个职位是三年前开设的呢?它 需要被选中吗?
而这一切是为了什么呢?
要从 开放的 职位中选择第一个。
有必要检查第一次开仓和最后一次开仓之间的点位 距离。
也许可以看看还有什么东西返回IsTradeAllowed()?
请帮助。我试图根据附在条形图上的两个点建立一个趋势,从最后一个点开始向前推进N条。即传入 - 第一个和第二个点的时间价格,和N表示为未来的条数(复选框梁=假)。如果第二个点,假设,位于从当前条形0开始的条形1上,而我必须从它提前10个条形抽出,我如何从未来条形的时间和价格计算?
请帮助。
我怎样才能找出时间高[3]?
请帮助。
我怎样才能找出时间高[3]?
时间[3]
试试吧。
如何描写。
/
在字符串中?
比如说。
string path=TerminalPath()+"/logs/"+tekTime+".log"。
给出了一个错误,如果你删除斜线"/"的话
string path=TerminalPath()+"logs "+tekTime+".log"。
- 没有错误。