论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:1062回复:6
zemeban
注册时间2005-01-23
编程时遇到这样的麻烦
楼主发表于:2005-11-27 11:58只看该作者倒序浏览
1楼 电梯直达
电梯直达
我是最近才学习写指标的 马上就遇到一个难题 先说明我写这个信号的功能吧 就是当RSI 离开超买/卖时就在 图表上标示出来 过程是对比前一支和后一支 bar 的值 本来是没有问题的 但当移动至前期的bar 时 mt4 会下载较旧的资料 编程上的问题马上出现了 它会重垒绘制前期和后期的信号指示 看一下图就明白了 :Q 我思索良久还是不能debug....... 请帮忙解救Snap2.pngSnap2.pngSnap1.pngSnap1.png
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
zemeban
注册时间2005-01-23
楼主发表于:2005-11-27 12:01只看该作者
2楼
zoom out 再看一下........ 有多乱的.........Snap3.pngSnap3.png
个性签名

韬客社区www.talkfx.co

zemeban
注册时间2005-01-23
楼主发表于:2005-11-27 12:02只看该作者
3楼
//+------------------------------------------------------------------+ //| rsi_test.mq4 | //| | //| | //+------------------------------------------------------------------+ #property copyright " " #property link "" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Black #property indicator_color2 Black //---- input parameters extern int buys=30; extern int sells=70; extern int periods=9; //---- buffers double ExtMapBuffer1; double ExtMapBuffer2; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW,0,1); SetIndexArrow(0,234); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW,0,1); SetIndexArrow(1,233); SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(1,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(int i=0; isells){ //sell signal if(iRSI(NULL,0,periods,PRICE_CLOSE,i-1)iRSI(NULL,0,periods,PRICE_CLOSE,i) && iRSI(NULL,0,periods,PRICE_CLOSE,i-1)>buys && iRSI(NULL,0,periods,PRICE_CLOSE,i-2)>buys && iRSI(NULL,0,periods,PRICE_CLOSE,i-1) !=0){ ExtMapBuffer2=Low-3*Point; } } } //---- return(0); } //+------------------------------------------------------------------+
wfy05
注册时间2005-07-23
发表于:2005-11-27 13:43只看该作者
4楼
你没有清空这样当新的历史数据过来时候就会和以前的数据重叠从而出现那种情况, 修正该问题后的代码如下: //+------------------------------------------------------------------+ //| rsi_test.mq4 | //| | //| | //+------------------------------------------------------------------+ #property copyright " " #property link "" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Blue //---- input parameters extern int buys=30; extern int sells=70; extern int periods=9; //---- buffers double ExtMapBuffer1; double ExtMapBuffer2; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW,0,1); SetIndexArrow(0,234); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW,0,1); SetIndexArrow(1,233); SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(1,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int pos; if (Bars < periods) return (0); int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; pos=Bars-counted_bars-1; int i; //---- zero initial values if(counted_bars<1) { for(i=1;i=2; i--){ rsi0 = iRSI(NULL,0,periods,PRICE_CLOSE,i); rsi1 = iRSI(NULL,0,periods,PRICE_CLOSE,i-1); rsi2 = iRSI(NULL,0,periods,PRICE_CLOSE,i-2); if(rsi0 > sells && rsi1 < rsi0 && rsi1 < sells && rsi2 < sells && rsi1 != 0) { //sell signal ExtMapBuffer1=High+3*Point; } else { ExtMapBuffer1=0; } if(rsi0 < buys && rsi1 > rsi0 && rsi1 > buys && rsi2 > buys && rsi1 !=0){ //buy signal ExtMapBuffer2=Low-3*Point; } else { ExtMapBuffer2=0; } } //---- return(0); } //+------------------------------------------------------------------+
zemeban
注册时间2005-01-23
楼主发表于:2005-11-28 09:40只看该作者
5楼
:) 谢谢 , 先去研究一下
稳步前进
注册时间2002-10-29
发表于:2005-12-20 01:57只看该作者
6楼
韬客还有这样的技术专家啊?
stkkinger
注册时间2005-07-29
发表于:2005-12-22 04:25只看该作者
7楼
藏龙卧虎!

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]