如何编码? - 页 195 1...188189190191192193194195196197198199200201202...347 新评论 Roger09 2009.07.30 03:05 #1941 kipper: 现在的情况是,程序做了所有的事情,但当数字低于15时,它保持蓝色,不知道我做错了什么,我希望有人能给我一些启示。下面是我的代码,有4种颜色 试试这个。 if(sym_1 85) color_1 = Red; else color_1 = Blue; if(sym_2 85) color_2 = Red; else color_2 = Blue; if(sym_3 85) color_3 = Red; else color_3 = Blue; if(sym_4 85) color_4 = Red; else color_4 = Blue; Igor Durkin 2009.07.30 03:39 #1942 "bar "是指从当前栏位开始的转变。 0 - 当前(开盘)酒吧 1 - 前一个("关闭")条。 grstaka: 谢谢你!!!! 这个bar是什么意思?是+1-1条吗? kipper 2009.07.30 03:53 #1943 谢谢你的帮助,罗杰,非常感谢 pairs4x 2009.07.30 15:45 #1944 帮助创建一个超买/超卖指标 我想找一个有编码技能的人帮我创建一个超买/超卖指标,该指标将采取2个货币对的价格差异并显示结果。 应该是很直接的,但我不是程序员,所以我不太确定。 有谁有兴趣为我试试这个? 如果有,请告诉我,如果有人知道已经有了,那也很好。 我已经搜索过了,但没有看到任何东西可以做到这一点。 Michael 2009.07.30 23:03 #1945 被追加保证金前的点数 有谁知道有什么方法可以计算出一个订单在被 追缴保证金 之前可以走多少个点? 假设一次只开一个头寸。 我相信一定有办法的,但我一直想不出来。 [删除] 2009.07.31 00:41 #1946 警报信号调整为交易信号--如何做到这一点? 你好。 我有一个显示交易箭头的指标,蓝色代表买入,粉色代表卖出。我需要实际的买单和卖单 以及声音信号。因此,一个货币对在任何时候都只有一个交易,当相反的箭头出现时,当前的交易就会关闭,同时也会根据箭头出现的新交易。我在哪里以及如何修改代码。随函附上代码。谢谢你的帮助。 /* +------------------------------------------------------------------+ | | +------------------------------------------------------------------+ */ #property copyright "Copyright)" #property link "http://" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 DodgerBlue #property indicator_width1 3 #property indicator_color2 Magenta #property indicator_width2 3 extern string note1 = "First Moving Average"; extern int MA1 = 10; extern string note2 = "0=sma, 1=ema, 2=smma, 3=lwma"; extern int MA1Mode = 0; //0=sma, 1=ema, 2=smma, 3=lwma extern string note3 = "--------------------------------------------"; extern string note4 = "Second Moving Average"; extern int MA2 = 50; extern string note5 = "0=sma, 1=ema, 2=smma, 3=lwma"; extern int MA2Mode = 0; //0=sma, 1=ema, 2=smma, 3=lwma extern string note6 = "--------------------------------------------"; extern string note7 = "Arrow Type"; extern string note8 = "0=Thick, 1=Thin, 2=Hollow, 3=Round"; extern string note9 = "4=Fractal, 5=Diagonal Thin"; extern string note10 = "6=Diagonal Thick, 7=Diagonal Hollow"; extern string note11 = "8=Thumb, 9=Finger"; extern int ArrowType=2; extern string note12 = "--------------------------------------------"; extern string note13 = "turn on Alert = true; turn off = false"; extern bool AlertOn = true; extern string note14 = "--------------------------------------------"; extern string note15 = "send Email Alert = true; turn off = false"; extern bool SendAnEmail=false; double CrossUp[]; double CrossDown[]; string AlertPrefix, MA1short_name, MA2short_name; string GetTimeFrameStr() { switch(Period()) { case 1 : string TimeFrameStr="M1"; break; case 5 : TimeFrameStr="M5"; break; case 15 : TimeFrameStr="M15"; break; case 30 : TimeFrameStr="M30"; break; case 60 : TimeFrameStr="H1"; break; case 240 : TimeFrameStr="H4"; break; case 1440 : TimeFrameStr="D1"; break; case 10080 : TimeFrameStr="W1"; break; case 43200 : TimeFrameStr="MN1"; break; default : TimeFrameStr=Period(); } return (TimeFrameStr); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators if (ArrowType == 0) { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0, 233); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1, 234); } else if (ArrowType == 1) { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0, 225); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1, 226); } else if (ArrowType == 2) { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0, 241); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1, 242); } else if (ArrowType == 3) { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0, 221); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1, 222); } else if (ArrowType == 4) { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0, 217); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1, 218); } else if (ArrowType == 5) { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0, 228); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1, 230); } else if (ArrowType == 6) { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0, 236); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1, 238); } else if (ArrowType == 7) { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0, 246); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1, 248); } else if (ArrowType == 8) { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0, 67); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1, 68); } else if (ArrowType == 9) { SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0, 71); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1, 72); } SetIndexBuffer(0, CrossUp); SetIndexBuffer(1, CrossDown); //---- indicator short name switch(MA1Mode) { case 1 : MA1short_name="EMA"; break; case 2 : MA1short_name="SMMA"; break; case 3 : MA1short_name="LWMA"; break; default : MA1Mode=0; MA1short_name="SMA"; } switch(MA2Mode) { case 1 : MA2short_name="EMA"; break; case 2 : MA2short_name="SMMA"; break; case 3 : MA2short_name="LWMA"; break; default : MA2Mode=0; MA2short_name="SMA"; } AlertPrefix=Symbol()+" ("+GetTimeFrameStr()+"): "; //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ bool NewBar() { static datetime lastbar; datetime curbar = Time[0]; if(lastbar!=curbar) { lastbar=curbar; return (true); } else { return(false); } } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit, i, counter; double MA1now, MA2now, MA1previous, MA2previous, MA1after, MA2after; double Range, AvgRange; 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(i = 0; i <= limit; i++) { counter=i; Range=0; AvgRange=0; for (counter=i ;counter<=i+9;counter++) { AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]); } Range=AvgRange/10; MA1now = iMA(NULL, 0, MA1, 0, MA1Mode, PRICE_CLOSE, i); MA1previous = iMA(NULL, 0, MA1, 0, MA1Mode, PRICE_CLOSE, i+1); MA1after = iMA(NULL, 0, MA1, 0, MA1Mode, PRICE_CLOSE, i-1); MA2now = iMA(NULL, 0, MA2, 0, MA2Mode, PRICE_CLOSE, i); MA2previous = iMA(NULL, 0, MA2, 0, MA2Mode, PRICE_CLOSE, i+1); MA2after = iMA(NULL, 0, MA2, 0, MA2Mode, PRICE_CLOSE, i-1); if ((MA1now > MA2now) && (MA1previous MA2after)) { CrossUp = Low - Range*1.5; if ( NewBar()) { if (AlertOn) { Alert(AlertPrefix+MA1short_name+" ("+MA1+") "+"crosses UP " + MA2short_name+" ("+MA2+")"); } if (SendAnEmail) { SendMail(AlertPrefix,MA1short_name+" ("+MA1+") "+"crosses UP " + MA2short_name+" ("+MA2+")"); } } } else if ((MA1now MA2previous) && (MA1after < MA2after)) { CrossDown = High + Range*1.5; if (NewBar()) { if (AlertOn) { Alert(AlertPrefix+MA1short_name+" ("+MA1+") "+"crosses DOWN " + MA2short_name+" ("+MA2+")"); } if (SendAnEmail) { SendMail(AlertPrefix,MA1short_name+" ("+MA1+") "+"crosses DOWN " + MA2short_name+" ("+MA2+")"); } } } } return(0); } How to code? 2macross email not working MQL4 Learning luxinterior 2009.07.31 03:04 #1947 看起来像一个简单的MA交叉指标。请查看 我的签名中的链接,它将使你能够建立一个MA交叉EA的免费教程。 好运 拉克斯 mirak 2009.07.31 04:50 #1948 你好,Seniore,这个EA可以使机器人......模型也是Martiangle的。 1.循环 -> 设置机器人的轮回方式有多少次 2.First Order Auto -> 根据当时小市场的趋势下单买入或卖出,然后自动操作旁边的最后一笔买入或卖出。 3.起始手数 -> 设置手数 4.范围 -> 你下单的位置与其他位置之间的距离 5.范围增加-->你下单的仓位与其他仓位之间的距离按照倍数增长 6.起始级数增加->二进制顺序启用参数rangeincrease的功能 8.TPmoney -> 当达到当时的资金利润时关闭所有订单。 谢谢 mirak 2009.08.01 01:54 #1949 帮助EA mirak: 你好,该EA可以制作机器人......模型也是Martiangle的。1.循环 -- 设置机器人循环多少次的方式 2.首单自动 -> 根据当时小盘的走势下单买入或卖出,然后自动操作旁边的最后一笔买入或卖出。 3.起始手数 -> 设置手数 4.范围 -> 你下单的位置与其他位置之间的距离 5.范围增加-->你下单的仓位与其他仓位之间的距离按照倍数增长 6.起始级数增加->二进制顺序启用参数rangeincrease的功能 8.TPmoney -> 当达到当时的资金利润时关闭所有订单。 谢谢 请帮助我们 Arshed Qureshi 2009.08.01 06:47 #1950 iTime 以下是在MTF上获取Bar 的开始时间的代码 GetTime =(iTime(Symbol(),60,i)); it OK 我们如何获得Bar的结束时间? 谢谢 1...188189190191192193194195196197198199200201202...347 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
现在的情况是,程序做了所有的事情,但当数字低于15时,它保持蓝色,不知道我做错了什么,我希望有人能给我一些启示。
下面是我的代码,有4种颜色
试试这个。
if(sym_2 85) color_2 = Red; else color_2 = Blue;
if(sym_3 85) color_3 = Red; else color_3 = Blue;
if(sym_4 85) color_4 = Red; else color_4 = Blue;"bar "是指从当前栏位开始的转变。
0 - 当前(开盘)酒吧
1 - 前一个("关闭")条。
谢谢你!!!! 这个bar是什么意思?是+1-1条吗?
谢谢你的帮助,罗杰,非常感谢
帮助创建一个超买/超卖指标
我想找一个有编码技能的人帮我创建一个超买/超卖指标,该指标将采取2个货币对的价格差异并显示结果。 应该是很直接的,但我不是程序员,所以我不太确定。 有谁有兴趣为我试试这个? 如果有,请告诉我,如果有人知道已经有了,那也很好。 我已经搜索过了,但没有看到任何东西可以做到这一点。
被追加保证金前的点数
有谁知道有什么方法可以计算出一个订单在被 追缴保证金 之前可以走多少个点? 假设一次只开一个头寸。
我相信一定有办法的,但我一直想不出来。
警报信号调整为交易信号--如何做到这一点?
你好。
我有一个显示交易箭头的指标,蓝色代表买入,粉色代表卖出。我需要实际的买单和卖单 以及声音信号。因此,一个货币对在任何时候都只有一个交易,当相反的箭头出现时,当前的交易就会关闭,同时也会根据箭头出现的新交易。我在哪里以及如何修改代码。随函附上代码。谢谢你的帮助。
/*
+------------------------------------------------------------------+
| |
+------------------------------------------------------------------+
*/
#property copyright "Copyright)"
#property link "http://"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_width1 3
#property indicator_color2 Magenta
#property indicator_width2 3
extern string note1 = "First Moving Average";
extern int MA1 = 10;
extern string note2 = "0=sma, 1=ema, 2=smma, 3=lwma";
extern int MA1Mode = 0; //0=sma, 1=ema, 2=smma, 3=lwma
extern string note3 = "--------------------------------------------";
extern string note4 = "Second Moving Average";
extern int MA2 = 50;
extern string note5 = "0=sma, 1=ema, 2=smma, 3=lwma";
extern int MA2Mode = 0; //0=sma, 1=ema, 2=smma, 3=lwma
extern string note6 = "--------------------------------------------";
extern string note7 = "Arrow Type";
extern string note8 = "0=Thick, 1=Thin, 2=Hollow, 3=Round";
extern string note9 = "4=Fractal, 5=Diagonal Thin";
extern string note10 = "6=Diagonal Thick, 7=Diagonal Hollow";
extern string note11 = "8=Thumb, 9=Finger";
extern int ArrowType=2;
extern string note12 = "--------------------------------------------";
extern string note13 = "turn on Alert = true; turn off = false";
extern bool AlertOn = true;
extern string note14 = "--------------------------------------------";
extern string note15 = "send Email Alert = true; turn off = false";
extern bool SendAnEmail=false;
double CrossUp[];
double CrossDown[];
string AlertPrefix, MA1short_name, MA2short_name;
string GetTimeFrameStr() {
switch(Period())
{
case 1 : string TimeFrameStr="M1"; break;
case 5 : TimeFrameStr="M5"; break;
case 15 : TimeFrameStr="M15"; break;
case 30 : TimeFrameStr="M30"; break;
case 60 : TimeFrameStr="H1"; break;
case 240 : TimeFrameStr="H4"; break;
case 1440 : TimeFrameStr="D1"; break;
case 10080 : TimeFrameStr="W1"; break;
case 43200 : TimeFrameStr="MN1"; break;
default : TimeFrameStr=Period();
}
return (TimeFrameStr);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
if (ArrowType == 0) {
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0, 233);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1, 234);
}
else if (ArrowType == 1) {
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0, 225);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1, 226);
}
else if (ArrowType == 2) {
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0, 241);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1, 242);
}
else if (ArrowType == 3) {
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0, 221);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1, 222);
}
else if (ArrowType == 4) {
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0, 217);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1, 218);
}
else if (ArrowType == 5) {
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0, 228);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1, 230);
}
else if (ArrowType == 6) {
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0, 236);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1, 238);
}
else if (ArrowType == 7) {
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0, 246);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1, 248);
}
else if (ArrowType == 8) {
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0, 67);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1, 68);
}
else if (ArrowType == 9) {
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0, 71);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1, 72);
}
SetIndexBuffer(0, CrossUp);
SetIndexBuffer(1, CrossDown);
//---- indicator short name
switch(MA1Mode)
{
case 1 : MA1short_name="EMA"; break;
case 2 : MA1short_name="SMMA"; break;
case 3 : MA1short_name="LWMA"; break;
default :
MA1Mode=0;
MA1short_name="SMA";
}
switch(MA2Mode)
{
case 1 : MA2short_name="EMA"; break;
case 2 : MA2short_name="SMMA"; break;
case 3 : MA2short_name="LWMA"; break;
default :
MA2Mode=0;
MA2short_name="SMA";
}
AlertPrefix=Symbol()+" ("+GetTimeFrameStr()+"): ";
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
bool NewBar()
{
static datetime lastbar;
datetime curbar = Time[0];
if(lastbar!=curbar)
{
lastbar=curbar;
return (true);
}
else
{
return(false);
}
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start() {
int limit, i, counter;
double MA1now, MA2now, MA1previous, MA2previous, MA1after, MA2after;
double Range, AvgRange;
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(i = 0; i <= limit; i++) {
counter=i;
Range=0;
AvgRange=0;
for (counter=i ;counter<=i+9;counter++)
{
AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
}
Range=AvgRange/10;
MA1now = iMA(NULL, 0, MA1, 0, MA1Mode, PRICE_CLOSE, i);
MA1previous = iMA(NULL, 0, MA1, 0, MA1Mode, PRICE_CLOSE, i+1);
MA1after = iMA(NULL, 0, MA1, 0, MA1Mode, PRICE_CLOSE, i-1);
MA2now = iMA(NULL, 0, MA2, 0, MA2Mode, PRICE_CLOSE, i);
MA2previous = iMA(NULL, 0, MA2, 0, MA2Mode, PRICE_CLOSE, i+1);
MA2after = iMA(NULL, 0, MA2, 0, MA2Mode, PRICE_CLOSE, i-1);
if ((MA1now > MA2now) && (MA1previous MA2after)) {
CrossUp = Low - Range*1.5;
if ( NewBar())
{
if (AlertOn) {
Alert(AlertPrefix+MA1short_name+" ("+MA1+") "+"crosses UP " + MA2short_name+" ("+MA2+")");
}
if (SendAnEmail) {
SendMail(AlertPrefix,MA1short_name+" ("+MA1+") "+"crosses UP " + MA2short_name+" ("+MA2+")");
}
}
}
else if ((MA1now MA2previous) && (MA1after < MA2after)) {
CrossDown = High + Range*1.5;
if (NewBar())
{
if (AlertOn) {
Alert(AlertPrefix+MA1short_name+" ("+MA1+") "+"crosses DOWN " + MA2short_name+" ("+MA2+")");
}
if (SendAnEmail) {
SendMail(AlertPrefix,MA1short_name+" ("+MA1+") "+"crosses DOWN " + MA2short_name+" ("+MA2+")");
}
}
}
}
return(0);
}
看起来像一个简单的MA交叉指标。请查看 我的签名中的链接,它将使你能够建立一个MA交叉EA的免费教程。
好运
拉克斯
你好,Seniore,这个EA可以使机器人......模型也是Martiangle的。
1.循环 -> 设置机器人的轮回方式有多少次
2.First Order Auto -> 根据当时小市场的趋势下单买入或卖出,然后自动操作旁边的最后一笔买入或卖出。
3.起始手数 -> 设置手数
4.范围 -> 你下单的位置与其他位置之间的距离
5.范围增加-->你下单的仓位与其他仓位之间的距离按照倍数增长
6.起始级数增加->二进制顺序启用参数rangeincrease的功能
8.TPmoney -> 当达到当时的资金利润时关闭所有订单。
谢谢
帮助EA
你好,该EA可以制作机器人......模型也是Martiangle的。
1.循环 -- 设置机器人循环多少次的方式
2.首单自动 -> 根据当时小盘的走势下单买入或卖出,然后自动操作旁边的最后一笔买入或卖出。
3.起始手数 -> 设置手数
4.范围 -> 你下单的位置与其他位置之间的距离
5.范围增加-->你下单的仓位与其他仓位之间的距离按照倍数增长
6.起始级数增加->二进制顺序启用参数rangeincrease的功能
8.TPmoney -> 当达到当时的资金利润时关闭所有订单。
谢谢
请帮助我们
iTime
以下是在MTF上获取Bar 的开始时间的代码
GetTime =(iTime(Symbol(),60,i)); it OK
我们如何获得Bar的结束时间?
谢谢