如何编码? - 页 257 1...250251252253254255256257258259260261262263264...347 新评论 [删除] 2011.03.10 16:23 #2561 查看Metatrader帮助中的时间函数。然后尝试像这样的方法 如果(TimeHour(Time[0]) TradeHourStop) { Comment("Trading suspended - outside trade hours"); return(false); } 其中TimeHourStart和stop是由你设置的外部变量。 return(false);将退出启动函数,不做进一步处理。 祝您好运。 hoser 2011.03.10 17:21 #2562 谢谢你的快速回复,Tzuman。 不幸的是,我的MT4编程目前仅限于一个在线EA生成器。 不过,这正是我所寻找的! korthouj 2011.03.15 22:30 #2563 如何编码配置评论的文字颜色和字体大小? 大家好。 我正在做一个EA,我只是一个初级程序员......。 我有一个问题,一般来说,如何编码评论的字体大小和文本颜色,并使其成为用户可配置的。我需要创建哪些外部变量?我应该如何编程呢? 我知道如何使用评论功能,比如说像这样。 if(TextOnScreen == true) Comment("This text appears on the screen " )。 但如何编程使用户可以改变屏幕上出现的文字的字体大小,以及如何通过改变EA选项中的设置来改变该文字的颜色? 谁能用几行代码来帮助我?非常感谢。 非常感谢您。 约翰 Kale 2011.03.16 05:35 #2564 korthouj: 大家好。我正在开发一个EA,我只是一个初级程序员...... 我有一个问题,一般来说,如何对评论的字体大小和文本颜色进行编码,并使其成为用户可配置的。我需要创建哪些外部变量?我应该如何编程呢? 我知道如何使用评论功能,比如说像这样。 if(TextOnScreen == true) Comment("This text appears on the screen " )。 但如何编程使用户可以改变屏幕上出现的文字的字体大小,以及如何通过改变EA选项中的设置来改变该文字的颜色? 谁能用几行代码来帮助我?非常感谢。 非常感谢您。 乔安 你需要使用图形对象,比如说表格。如何做到这一点--你可以在手册中轻松阅读。 MrPip 2011.03.19 06:28 #2565 korthouj: 大家好。我正在开发一个EA,我只是一个初级程序员...... 我有一个问题,一般来说,如何对评论的字体大小和文本颜色进行编码,并使其成为用户可配置的。我需要创建哪些外部变量?我应该如何编程呢? 我知道如何使用评论功能,比如说像这样。 if(TextOnScreen == true) Comment("This text appears on the screen " )。 但如何编程使用户可以改变屏幕上出现的文字的字体大小,以及如何通过改变EA选项中的设置来改变该文字的颜色? 谁能用几行代码来帮助我?非常感谢。 非常感谢您。 乔安 Johan, 研究一下附件中的指标。 其中一些代码是为使用模板时准备的。 当一个货币对的文本因为模板而出现在另一个货币对的图表上时,我发现了这个问题。 如果需要更多的文本行,你应该能够弄清楚。 如果不需要,我将再次发帖,展示一个多行的例子。 罗伯特 附加的文件: magnified_profit_loss.mq4 5 kb [删除] 2011.03.19 13:23 #2566 为什么关闭订单失败,如何限制订单? 我是MQL4的新手,刚刚测试了我自己的一个EA,但它看起来无法关闭订单,它将在每一栏打开订单,直到freemargin变成0,然后它将强制停止所有订单。 我不知道如何限制开放订单的数量。 谁能告诉我,感谢TKS! 我的代码如下。 //+------------------------------------------------------------------+ //| Moving Average.mq4 //| 2005年,MetaQuotes软件公司版权所有。| //|TeamWox Groupware / MetaQuotes Software Corp.| //+------------------------------------------------------------------+ #define MAGICMA 20110309 外部双数 Lots = 1; 外置双倍最大风险 = 0.02; extern double DecreaseFactor = 10; //+------------------------------------------------------------------+ //| 计算未结头寸 | //+------------------------------------------------------------------+ int CalculateCurrentOrders(string symbol) { int buys=0,sells=0。 //---- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 如果(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA) { 如果(OrderType()==OP_BUY) buys++; 如果(OrderType()==OP_SELL) sells++; } } //---- 返回订单量 if(buys>0) return(buys); 否则返回(sells)。 } //+------------------------------------------------------------------+ //|计算最佳手数 | //+------------------------------------------------------------------+ double LotsOptimized() { double lot=Lots; int orders=HistoryTotal(); // 历史订单总数 int losses=0; // 亏损订单的数量,没有休息时间 //---- 选择手数大小 lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/100.0,1)。 Print(MarketInfo(Symbol(), MODE_LOTSIZE))。 Print(MarketInfo(Symbol(), MODE_MINLOT))。 Print(MarketInfo(Symbol(), MODE_LOTSTEP))。 Print(MarketInfo(Symbol(), MODE_MAXLOT))。 //----,计算无休止的损失订单的数量 如果(DecreaseFactor>0) { for(int i=orders-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("历史中的错误!"); break; } 如果(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) 继续。 //---- if(OrderProfit()>0) break; if(OrderProfit()<0) losses++; } 如果(损失>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1); //这是一个聪明的技术设计,但亏损代表损失的利润,而不是钱,可能会导致问题。 //将其修改为:accountfreemargin()-orderprofit() } //---- 返回手数大小 if(lot<1) lot=1; return(lot); } //+------------------------------------------------------------------+ //| 检查未平仓订单的情况 | //+------------------------------------------------------------------+ 空白 CheckForOpen() { double m1,m2,m3,m4,ticket1,ticket2; int res; //----,只对新条形图的第一个点进行交易。 if(Volume[0]>1) return; //---- 获取移动平均线 m1=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,0)。 m2=iMA(NULL,0,55,0,MODE_SMA,PRICE_CLOSE,0)。 m3=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,1)。 m4=iMA(NULL,0,55,0,MODE_SMA,PRICE_CLOSE,1)。 //---- 卖出条件 如果(m1<m3-0.0002) { ticket1=OrderSend(Symbol(),OP_SELL,1,Bid,5,Ask+105*Point,0, "My order #1",MAGICMA,0,Red)。 返回。 } 如果(m2<m4-0.0001) { ticket2=OrderSend(Symbol(),OP_SELL,1,Bid,5,Ask+105*Point,0, "My order #2",MAGICMA,0,Yellow); 返回。 } //---- 买入条件 if ( m1>m3+0.0002) { ticket1=OrderSend(Symbol(),OP_BUY,1,Ask,5,Bid-105*Point,0, "My order #1",MAGICMA,0,Blue)。 返回。 } 如果(m2>m4+0.0001) { ticket2=OrderSend(Symbol(),OP_BUY,1,Ask,5,Bid-105*Point,0, "My order #2",MAGICMA,0,Green)。 返回。 } //---- } //+------------------------------------------------------------------+ //| 检查平仓条件 | //+------------------------------------------------------------------+ 空白 CheckForClose() { 双重m1,m2,m3,m4。 //----,只对新条形图的第一个点进行交易。 if(Volume[0]>1) return; //---- 获取移动平均线 m1=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,0)。 m2=iMA(NULL,0,55,0,MODE_SMA,PRICE_CLOSE,0)。 m3=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,1)。 m4=iMA(NULL,0,55,0,MODE_SMA,PRICE_CLOSE,1)。 //---- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 如果(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) 继续。 //---- 检查订单类型 如果(OrderType()==OP_BUY) { 如果(m1<m3+0.0002) { OrderClose(OrderTicket(),OrderLots(), Bid,3,Violet)。 休息。 } 如果(m2<m4+0.0001) { OrderClose(OrderTicket(),OrderLots(),Bid,3,White)。 休息。 } } 如果(OrderType()==OP_SELL) { 如果(m1>m3-0.0002) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Tan)。 休息。 } 如果(m2<m4-0.0001) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Salmon)。 break; } } } //---- } //+------------------------------------------------------------------+ //| 启动功能 | //+------------------------------------------------------------------+ 空白启动() { //---- 检查历史和交易情况 如果(Bars<55 || IsTradeAllowed()==false) 返回。 //---- 按当前符号计算未结订单 如果(CalculateCurrentOrders(Symbol())==0)CheckForOpen(); 否则CheckForClose()。 //---- } //+------------------------------------------------------------------+ 有助于精简EA How to code? [存档!]我将免费写一份顾问报告 pgiani 2011.03.22 11:43 #2567 检测Windows版本 有没有人现在有一个简单的方法,只用一个windows的API调用,就能找出正在运行的windows MT4的版本。 谁能告诉我如何使这个工作。 #import "kernel32.dll" int GWINAPI GetVersionEA(_inout LPOSVERSIONINFO lpVersionInfo)。 #import GetVersionEx函数(Windows) 谢谢你 Edward James Crivello 2011.03.26 18:54 #2568 需要帮助。对我的CCI背离式EA进行小的调整 我有一个CCI发散型EA,使用MT4中指标文件夹中的自定义CCI发散指标来决定何时进行交易。 我想做的是使用一个自定义的Stochastics Divergence 指标(我有这个指标)来代替。 我不知道如何改变EA的代码,使其指向指标文件夹中的随机指数分歧指标。 在EA的输入中,我想我需要替换。 extern int CCI_Period = 10; 替换为 extern int Stoch_K = 5; extern int Stoch_D = 3; extern int Stoch_Slowing = 3; 在代码的主要部分,我找到了指向指标文件夹中的自定义CCI背离指标的区域。 dUp = iCustom(Symbol(), 0, "CCI_Divergence_Indicator", "", CCI_Period, 9, "", false, false, false, 0, 2)。 dDn = iCustom(Symbol(), 0, "CCI_Divergence_Indicator", "", CCI_Period, 9, "", false, false, false, 1, 2) 。 我知道我必须把 "CCI_Divergence_Indicator "改为 "Stochastics_Divergence_Indicator",这是指标文件夹中自定义随机背离指标的名称。而且我必须删除CCI_Period和9。 但我不知道如何在这部分代码中加入Stoch_K、Stoch_D和Stoch_Slowing。 我试着自己改变它,但随后EA就打不开了。 有谁知道如何对这部分代码进行编码,以使随机背离指标能够取代cci背离指标? 我付钱给一个程序员来创建这个EA,但是他非常忙于其他客户的项目。所以当涉及到小的修改/修复时,他没有时间为我做--至少不是马上。因此,这就是为什么我在这里问。 CCI背离指标有太多的错误信号。Stochastics Divergence指标要好得多。这就是为什么我想做转换。 先谢谢你了。 编码帮助 Coding help How to code? jake8055 2011.03.28 17:21 #2569 请帮助我 我有一行代码,当1个小节的价格(无论是1米5还是189米)在1个小节内移动200个点时,会向我发出警报。但我一生都想不出如何设置它只向特定方向发出警报。 if(High[0]-Low[0]>200*Point)PlaySound("Alert.wav"); //这样做很好。 但是我希望能够区分200点上升和200点下降。我读过书,在论坛上问过,在聊天室里问过,把自己逼疯了3天。 DraveRobber 2011.03.28 17:43 #2570 if(High[0]-Low[0]>200*Point && Close[0]>Open[0])PlaySound("Up.wav"); if(High[0]-Low[0]>200*Point && Close[0]<Open[0])PlaySound("Down.wav");[/CODE] Actually, you should rather look at highs and lows of two last bars and compare close to close, to ensure gaps are included, too: [CODE]if(Mathmax(High[0],High[1])-Mathmin(Low[0],Low[1])>200*Point && Close[0]>Close[1])PlaySound("Up.wav"); if(Mathmax(High[0],High[1])-Mathmin(Low[0],Low[1])>200*Point && Close[0]<Close[1])PlaySound("Down.wav"); How to code? Candle Wick Length code Any questions from newcomers 1...250251252253254255256257258259260261262263264...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
查看Metatrader帮助中的时间函数。然后尝试像这样的方法
如果(TimeHour(Time[0]) TradeHourStop)
{
Comment("Trading suspended - outside trade hours");
return(false);
}
其中TimeHourStart和stop是由你设置的外部变量。 return(false);将退出启动函数,不做进一步处理。
祝您好运。
谢谢你的快速回复,Tzuman。
不幸的是,我的MT4编程目前仅限于一个在线EA生成器。
不过,这正是我所寻找的!
如何编码配置评论的文字颜色和字体大小?
大家好。
我正在做一个EA,我只是一个初级程序员......。
我有一个问题,一般来说,如何编码评论的字体大小和文本颜色,并使其成为用户可配置的。我需要创建哪些外部变量?我应该如何编程呢?
我知道如何使用评论功能,比如说像这样。
if(TextOnScreen == true) Comment("This text appears on the screen " )。
但如何编程使用户可以改变屏幕上出现的文字的字体大小,以及如何通过改变EA选项中的设置来改变该文字的颜色?
谁能用几行代码来帮助我?非常感谢。
非常感谢您。
约翰
大家好。
我正在开发一个EA,我只是一个初级程序员......
我有一个问题,一般来说,如何对评论的字体大小和文本颜色进行编码,并使其成为用户可配置的。我需要创建哪些外部变量?我应该如何编程呢?
我知道如何使用评论功能,比如说像这样。
if(TextOnScreen == true) Comment("This text appears on the screen " )。
但如何编程使用户可以改变屏幕上出现的文字的字体大小,以及如何通过改变EA选项中的设置来改变该文字的颜色?
谁能用几行代码来帮助我?非常感谢。
非常感谢您。
乔安你需要使用图形对象,比如说表格。如何做到这一点--你可以在手册中轻松阅读。
大家好。
我正在开发一个EA,我只是一个初级程序员......
我有一个问题,一般来说,如何对评论的字体大小和文本颜色进行编码,并使其成为用户可配置的。我需要创建哪些外部变量?我应该如何编程呢?
我知道如何使用评论功能,比如说像这样。
if(TextOnScreen == true) Comment("This text appears on the screen " )。
但如何编程使用户可以改变屏幕上出现的文字的字体大小,以及如何通过改变EA选项中的设置来改变该文字的颜色?
谁能用几行代码来帮助我?非常感谢。
非常感谢您。
乔安Johan,
研究一下附件中的指标。
其中一些代码是为使用模板时准备的。
当一个货币对的文本因为模板而出现在另一个货币对的图表上时,我发现了这个问题。
如果需要更多的文本行,你应该能够弄清楚。
如果不需要,我将再次发帖,展示一个多行的例子。
罗伯特
为什么关闭订单失败,如何限制订单?
我是MQL4的新手,刚刚测试了我自己的一个EA,但它看起来无法关闭订单,它将在每一栏打开订单,直到freemargin变成0,然后它将强制停止所有订单。 我不知道如何限制开放订单的数量。 谁能告诉我,感谢TKS!
我的代码如下。
//+------------------------------------------------------------------+
//| Moving Average.mq4
//| 2005年,MetaQuotes软件公司版权所有。|
//|TeamWox Groupware / MetaQuotes Software Corp.|
//+------------------------------------------------------------------+
#define MAGICMA 20110309
外部双数 Lots = 1;
外置双倍最大风险 = 0.02;
extern double DecreaseFactor = 10;
//+------------------------------------------------------------------+
//| 计算未结头寸 |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0。
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
如果(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
如果(OrderType()==OP_BUY) buys++;
如果(OrderType()==OP_SELL) sells++;
}
}
//---- 返回订单量
if(buys>0) return(buys);
否则返回(sells)。
}
//+------------------------------------------------------------------+
//|计算最佳手数 |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots;
int orders=HistoryTotal(); // 历史订单总数
int losses=0; // 亏损订单的数量,没有休息时间
//---- 选择手数大小
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/100.0,1)。
Print(MarketInfo(Symbol(), MODE_LOTSIZE))。
Print(MarketInfo(Symbol(), MODE_MINLOT))。
Print(MarketInfo(Symbol(), MODE_LOTSTEP))。
Print(MarketInfo(Symbol(), MODE_MAXLOT))。
//----,计算无休止的损失订单的数量
如果(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("历史中的错误!"); break; }
如果(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) 继续。
//----
if(OrderProfit()>0) break;
if(OrderProfit()<0) losses++;
}
如果(损失>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
//这是一个聪明的技术设计,但亏损代表损失的利润,而不是钱,可能会导致问题。
//将其修改为:accountfreemargin()-orderprofit()
}
//---- 返回手数大小
if(lot<1) lot=1;
return(lot);
}
//+------------------------------------------------------------------+
//| 检查未平仓订单的情况 |
//+------------------------------------------------------------------+
空白 CheckForOpen()
{
double m1,m2,m3,m4,ticket1,ticket2;
int res;
//----,只对新条形图的第一个点进行交易。
if(Volume[0]>1) return;
//---- 获取移动平均线
m1=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,0)。
m2=iMA(NULL,0,55,0,MODE_SMA,PRICE_CLOSE,0)。
m3=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,1)。
m4=iMA(NULL,0,55,0,MODE_SMA,PRICE_CLOSE,1)。
//---- 卖出条件
如果(m1<m3-0.0002)
{
ticket1=OrderSend(Symbol(),OP_SELL,1,Bid,5,Ask+105*Point,0, "My order #1",MAGICMA,0,Red)。
返回。
}
如果(m2<m4-0.0001)
{
ticket2=OrderSend(Symbol(),OP_SELL,1,Bid,5,Ask+105*Point,0, "My order #2",MAGICMA,0,Yellow);
返回。
}
//---- 买入条件
if ( m1>m3+0.0002)
{
ticket1=OrderSend(Symbol(),OP_BUY,1,Ask,5,Bid-105*Point,0, "My order #1",MAGICMA,0,Blue)。
返回。
}
如果(m2>m4+0.0001)
{
ticket2=OrderSend(Symbol(),OP_BUY,1,Ask,5,Bid-105*Point,0, "My order #2",MAGICMA,0,Green)。
返回。
}
//----
}
//+------------------------------------------------------------------+
//| 检查平仓条件 |
//+------------------------------------------------------------------+
空白 CheckForClose()
{
双重m1,m2,m3,m4。
//----,只对新条形图的第一个点进行交易。
if(Volume[0]>1) return;
//---- 获取移动平均线
m1=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,0)。
m2=iMA(NULL,0,55,0,MODE_SMA,PRICE_CLOSE,0)。
m3=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,1)。
m4=iMA(NULL,0,55,0,MODE_SMA,PRICE_CLOSE,1)。
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
如果(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) 继续。
//---- 检查订单类型
如果(OrderType()==OP_BUY)
{
如果(m1<m3+0.0002)
{
OrderClose(OrderTicket(),OrderLots(), Bid,3,Violet)。
休息。
}
如果(m2<m4+0.0001)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,White)。
休息。
}
}
如果(OrderType()==OP_SELL)
{
如果(m1>m3-0.0002)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Tan)。
休息。
}
如果(m2<m4-0.0001)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Salmon)。
break;
}
}
}
//----
}
//+------------------------------------------------------------------+
//| 启动功能 |
//+------------------------------------------------------------------+
空白启动()
{
//---- 检查历史和交易情况
如果(Bars<55 || IsTradeAllowed()==false) 返回。
//---- 按当前符号计算未结订单
如果(CalculateCurrentOrders(Symbol())==0)CheckForOpen();
否则CheckForClose()。
//----
}
//+------------------------------------------------------------------+
检测Windows版本
有没有人现在有一个简单的方法,只用一个windows的API调用,就能找出正在运行的windows MT4的版本。
谁能告诉我如何使这个工作。
#import "kernel32.dll"
int GWINAPI GetVersionEA(_inout LPOSVERSIONINFO lpVersionInfo)。
#import
GetVersionEx函数(Windows)
谢谢你
需要帮助。对我的CCI背离式EA进行小的调整
我有一个CCI发散型EA,使用MT4中指标文件夹中的自定义CCI发散指标来决定何时进行交易。
我想做的是使用一个自定义的Stochastics Divergence 指标(我有这个指标)来代替。
我不知道如何改变EA的代码,使其指向指标文件夹中的随机指数分歧指标。
在EA的输入中,我想我需要替换。
extern int CCI_Period = 10;
替换为
extern int Stoch_K = 5;
extern int Stoch_D = 3;
extern int Stoch_Slowing = 3;
在代码的主要部分,我找到了指向指标文件夹中的自定义CCI背离指标的区域。
dUp = iCustom(Symbol(), 0, "CCI_Divergence_Indicator", "", CCI_Period, 9, "", false, false, false, 0, 2)。
dDn = iCustom(Symbol(), 0, "CCI_Divergence_Indicator", "", CCI_Period, 9, "", false, false, false, 1, 2) 。
我知道我必须把 "CCI_Divergence_Indicator "改为 "Stochastics_Divergence_Indicator",这是指标文件夹中自定义随机背离指标的名称。而且我必须删除CCI_Period和9。
但我不知道如何在这部分代码中加入Stoch_K、Stoch_D和Stoch_Slowing。
我试着自己改变它,但随后EA就打不开了。
有谁知道如何对这部分代码进行编码,以使随机背离指标能够取代cci背离指标?
我付钱给一个程序员来创建这个EA,但是他非常忙于其他客户的项目。所以当涉及到小的修改/修复时,他没有时间为我做--至少不是马上。因此,这就是为什么我在这里问。
CCI背离指标有太多的错误信号。Stochastics Divergence指标要好得多。这就是为什么我想做转换。
先谢谢你了。
请帮助我
我有一行代码,当1个小节的价格(无论是1米5还是189米)在1个小节内移动200个点时,会向我发出警报。但我一生都想不出如何设置它只向特定方向发出警报。
if(High[0]-Low[0]>200*Point)PlaySound("Alert.wav"); //这样做很好。
但是我希望能够区分200点上升和200点下降。我读过书,在论坛上问过,在聊天室里问过,把自己逼疯了3天。
if(High[0]-Low[0]>200*Point && Close[0]<Open[0])PlaySound("Down.wav");[/CODE]
Actually, you should rather look at highs and lows of two last bars and compare close to close, to ensure gaps are included, too:
[CODE]if(Mathmax(High[0],High[1])-Mathmin(Low[0],Low[1])>200*Point && Close[0]>Close[1])PlaySound("Up.wav");
if(Mathmax(High[0],High[1])-Mathmin(Low[0],Low[1])>200*Point && Close[0]<Close[1])PlaySound("Down.wav");