如何编码? - 页 152 1...145146147148149150151152153154155156157158159...347 新评论 Roger09 2009.01.05 02:08 #1511 m_43_62: 嗨 非常感谢所有的朋友 你不能把指标 作为顾问,你必须把顾问和指标一起使用,像这样。 P.S. 不要忘记把指标放到指标目录中。 附加的文件: forexfreedombars.mq4 3 kb freedom_bars.mq4 8 kb latimeria 2009.01.06 13:41 #1512 删除 --- 删除 --- twnuck 2009.01.07 03:09 #1513 显示上次MA交叉后的天/小时的代码 我需要一个代码来显示上次两个MA交叉的时间(即多长时间以前)。它可以用天或小时来显示。 如果有任何帮助,我们将不胜感激。 托德 auto_dba6536d0ab051bfdea8c324684c737c 2009.01.07 03:18 #1514 转换到市场执行 我有一个为Metatrader4的 "即时执行 "版本建立的EA,我需要有人修改代码,使其能在Metatrader4的 "市场执行 "版本上运行。 请将报价或任何问题电邮给我,phasna@gmail.com。 谢谢 保罗 increase 2009.01.07 12:53 #1515 有谁知道在EA中为这个指标使用的icustom语句吗? 它只有一个缓冲区SetIndexBuffer( 0, TrStopLevel );用于尾部的点,箭头是由ObjectSet绘制的,你如何在icustom语句中拾取它? MT4-LevelStop-Reverse-v2-1.mq4 附加的文件: mt4-levelstop-reverse-v2-1.mq4 17 kb increase 2009.01.08 01:18 #1516 increase: 有谁知道在EA中为这个指标使用的icustom语句吗?它只有一个缓冲区SetIndexBuffer( 0, TrStopLevel );这是用在尾部的点上,箭头是由ObjectSet绘制的,你如何在icustom语句中提取? MT4-LevelStop-Reverse-v2-1.mq4 有没有人可以帮忙? i2trader 2009.01.09 02:11 #1517 帮助我在点差之间进行交易! 好的,点差扼杀了一些货币对。但是否可以在点差中间进行交易?我有这样的代码,能不能把它改成以图表价格而不是买入价来修改订单? void PlaceBuyOrder() { double BuyOrders, Lots; double LowestBuy = 1000, HighestBuy; 如果(BarTime != Time[0]) { BarTime = Time[0]; TickPrice = 0; TradeAllowed = true; } RefreshRates()。 for (Order = OrdersTotal() - 1; Order >= 0; Order--) { 如果(OrderSelect(Order, SELECT_BY_POS, MODE_TRADES)) { 如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_BUY) { 如果(OrderOpenPrice() < LowestBuy)LowestBuy = OrderOpenPrice(); 如果(OrderOpenPrice() > HighestBuy) HighestBuy = OrderOpenPrice(); BuyOrders++; } } } 如果(TradeAllowed) { 如果 (Ask >= HighestBuy + (TrendSpacing * Point)) { // 如果 (Multiplier) 如果(Multiplier == 1) Lots = NormalizeDouble(LotSize * MathPow(LotIncrement, BuyOrders), 2); 否则 Lots = NormalizeDouble(LotSize + (LotIncrement * BuyOrders), 2); } 如果(Ask <= LowestBuy - (Spacing * Point)) { // 如果 (乘数) 如果(乘数==1) Lots = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, BuyOrders), 2); 否则 Lots = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * BuyOrders), 2); } 如果(Lots == 0) { // 如果(乘数) 如果(乘数==1) Lots = NormalizeDouble(LotSize, 2); 否则 Lots = NormalizeDouble(LotSize, 2); } OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, TradeComment, Reference, Green)。 Error = GetLastError(); 如果(Error != 0) Write("错误打开BUY订单。" + ErrorDescription(Error) + " (C" + Error + ") Ask:" + Ask + " Slippage:" + Slippage)。 否则 { TickPrice = Close[0]; TradeAllowed = false。 } } } 无效的PlaceSellOrder() { 双重SellOrders, Lots; double HighestSell, LowestSell = 1000; 如果(BarTime != Time[0]) { BarTime = Time[0]; TickPrice = 0; TradeAllowed = true; } RefreshRates()。 for (Order = OrdersTotal() - 1; Order >= 0; Order--) { 如果(OrderSelect(Order, SELECT_BY_POS, MODE_TRADES)) { 如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_SELL) { 如果 (OrderOpenPrice() > HighestSell) HighestSell = OrderOpenPrice(); 如果(OrderOpenPrice() < LowestSell)LowestSell = OrderOpenPrice(); SellOrders++; } } } 如果(TradeAllowed) { 如果 (Bid <= LowestSell - (TrendSpacing * Point)) { // 如果 (乘数) 如果 (乘数 == 1) Lots = NormalizeDouble(LotSize * MathPow(LotIncrement, SellOrders), 2); 否则 Lots = NormalizeDouble(LotSize + (LotIncrement * SellOrders), 2); } 如果 (Bid >= HighestSell + (Spacing * Point)) { // 如果 (乘数) 如果 (乘数 == 1) Lots = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, SellOrders), 2); 否则 Lots = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * SellOrders), 2); } 如果(Lots == 0) { // 如果(乘数) 如果 (乘数 == 1) Lots = NormalizeDouble(LotSize, 2); 否则 Lots = NormalizeDouble(LotSize, 2); } OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, TradeComment, Reference, Red) 。 Error = GetLastError(); 如果(Error != 0) Write("错误打开卖出订单。" + ErrorDescription(Error) + " (D" + Error + ") Bid:" + Bid + " Slippage:" + Slippage)。 否则 { TickPrice = Close[0]; TradeAllowed = false。 } } } 这是一些可以做的吗? [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. 初学者的问题 MQL4 MT4 MetaTrader 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. Professor of channel trading 2009.01.09 17:53 #1518 帮助~只有一个错误,用了3个小时仍然找不到它 我很担心,因为我找不到如何纠正下面的错误。 谁能告诉我哪里出错了吗?或者帮我调试一下,我已经附上了文件,见图~。 'end_of_program' - 不平衡的左括号 C:\Program Files\ MetaTraderexperts\scripts\delete_pending_SAM.mq4 (38, 2) 它是一个脚本文件~~ //+------------------------------------------------------------------+ //| delete_pending.mq4| //| Copyright ?2004, MetaQuotes Software Corp.| //+------------------------------------------------------------------+ #property copyright "Copyright ?2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property show_inputs bool result; extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE //+------------------------------------------------------------------+ //| 脚本 "删除挂单" | //+------------------------------------------------------------------+ int start() { for (int number=0; ( number <= OrdersTotal()+1); number++ ) {for (int times=0;( times <= OrdersTotal()+1); times++ ) {if(OrderSelect(number,SELECT_BY_POS,MODE_TRADES) ) {if((OrderType()==OP_BUY)||(OrderType()==OP_SELL)) break; 如果((OverSymbolDel ==0)&&(Symbol()==OrderSymbol()) delPending()。 如果 (OverSymbolDel ==1) delPending(); } 否则 Print("订单选择时出错", GetLastError() ) ; } } } //+------------------------------------------------------------------+ 空白的delPending() {OrderPrint(); int ticket =OrderTicket(); result=OrderDelete(ticket); if (result==False) Print("Error when delete Order" , GetLastError())。 } 附加的文件: delete_pending_sam.mq4 2 kb How to code? 一目了然战略 how to run script Roger09 2009.01.09 20:11 #1519 对chiwing 试试这个。 #property copyright "Copyright ?2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property show_inputs bool result; extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE //+------------------------------------------------------------------+ //| script "delete pending order" | //+------------------------------------------------------------------+ int start() { for (int number=OrdersTotal()-1; number >= 0; number--) { OrderSelect(number,SELECT_BY_POS,MODE_TRADES); if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue; if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending(); if (OverSymbolDel ==1) delPending(); } } //+------------------------------------------------------------------+ void delPending() { OrderPrint(); int ticket =OrderTicket(); result=OrderDelete(ticket); if (!result) Print("Error when delete Order ", GetLastError() ); } How to code? 编码帮助 how to run script Professor of channel trading 2009.01.10 02:41 #1520 Roger09:改为:如果((OrderType()==OP_BUY ||(OrderType()==OP_SELL)) countinue;。试试这个。 #property copyright "Copyright ?2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property show_inputs bool result; extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE //+------------------------------------------------------------------+ //| script "delete pending order" | //+------------------------------------------------------------------+ int start() { for (int number=OrdersTotal()-1; number >= 0; number--) { OrderSelect(number,SELECT_BY_POS,MODE_TRADES); if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue; if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending(); if (OverSymbolDel ==1) delPending(); } } //+------------------------------------------------------------------+ void delPending() { OrderPrint(); int ticket =OrderTicket(); result=OrderDelete(ticket); if (!result) Print("Error when delete Order ", GetLastError() ); } 谢谢你的帮助~~ 我发现我的错误。 {if(OrderSelect(number,SELECT_BY_POS,MODE_TRADES) ) 改为 OrderSelect(number,SELECT_BY_POS,MODE_TRADES)。 {if((OrderType()==OP_BUY)|| (OrderType()==OP_SELL) ) break; 改为 如果((OrderType()==OP_BUY)|| (OrderType()==OP_SELL) )继续计算。 1...145146147148149150151152153154155156157158159...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
嗨
非常感谢所有的朋友
你不能把指标 作为顾问,你必须把顾问和指标一起使用,像这样。
P.S. 不要忘记把指标放到指标目录中。
删除
--- 删除 ---
显示上次MA交叉后的天/小时的代码
我需要一个代码来显示上次两个MA交叉的时间(即多长时间以前)。它可以用天或小时来显示。
如果有任何帮助,我们将不胜感激。
托德
转换到市场执行
我有一个为Metatrader4的 "即时执行 "版本建立的EA,我需要有人修改代码,使其能在Metatrader4的 "市场执行 "版本上运行。 请将报价或任何问题电邮给我,phasna@gmail.com。
谢谢
保罗
有谁知道在EA中为这个指标使用的icustom语句吗?
它只有一个缓冲区SetIndexBuffer( 0, TrStopLevel );用于尾部的点,箭头是由ObjectSet绘制的,你如何在icustom语句中拾取它?
MT4-LevelStop-Reverse-v2-1.mq4
有谁知道在EA中为这个指标使用的icustom语句吗?
它只有一个缓冲区SetIndexBuffer( 0, TrStopLevel );这是用在尾部的点上,箭头是由ObjectSet绘制的,你如何在icustom语句中提取?
MT4-LevelStop-Reverse-v2-1.mq4有没有人可以帮忙?
帮助我在点差之间进行交易!
好的,点差扼杀了一些货币对。但是否可以在点差中间进行交易?我有这样的代码,能不能把它改成以图表价格而不是买入价来修改订单?
void PlaceBuyOrder()
{
double BuyOrders, Lots;
double LowestBuy = 1000, HighestBuy;
如果(BarTime != Time[0])
{
BarTime = Time[0];
TickPrice = 0;
TradeAllowed = true;
}
RefreshRates()。
for (Order = OrdersTotal() - 1; Order >= 0; Order--)
{
如果(OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))
{
如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_BUY)
{
如果(OrderOpenPrice() < LowestBuy)LowestBuy = OrderOpenPrice();
如果(OrderOpenPrice() > HighestBuy) HighestBuy = OrderOpenPrice();
BuyOrders++;
}
}
}
如果(TradeAllowed)
{
如果 (Ask >= HighestBuy + (TrendSpacing * Point))
{
// 如果 (Multiplier)
如果(Multiplier == 1)
Lots = NormalizeDouble(LotSize * MathPow(LotIncrement, BuyOrders), 2);
否则
Lots = NormalizeDouble(LotSize + (LotIncrement * BuyOrders), 2);
}
如果(Ask <= LowestBuy - (Spacing * Point))
{
// 如果 (乘数)
如果(乘数==1)
Lots = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, BuyOrders), 2);
否则
Lots = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * BuyOrders), 2);
}
如果(Lots == 0)
{
// 如果(乘数)
如果(乘数==1)
Lots = NormalizeDouble(LotSize, 2);
否则
Lots = NormalizeDouble(LotSize, 2);
}
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, TradeComment, Reference, Green)。
Error = GetLastError();
如果(Error != 0)
Write("错误打开BUY订单。" + ErrorDescription(Error) + " (C" + Error + ") Ask:" + Ask + " Slippage:" + Slippage)。
否则
{
TickPrice = Close[0];
TradeAllowed = false。
}
}
}
无效的PlaceSellOrder()
{
双重SellOrders, Lots;
double HighestSell, LowestSell = 1000;
如果(BarTime != Time[0])
{
BarTime = Time[0];
TickPrice = 0;
TradeAllowed = true;
}
RefreshRates()。
for (Order = OrdersTotal() - 1; Order >= 0; Order--)
{
如果(OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))
{
如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_SELL)
{
如果 (OrderOpenPrice() > HighestSell) HighestSell = OrderOpenPrice();
如果(OrderOpenPrice() < LowestSell)LowestSell = OrderOpenPrice();
SellOrders++;
}
}
}
如果(TradeAllowed)
{
如果 (Bid <= LowestSell - (TrendSpacing * Point))
{
// 如果 (乘数)
如果 (乘数 == 1)
Lots = NormalizeDouble(LotSize * MathPow(LotIncrement, SellOrders), 2);
否则
Lots = NormalizeDouble(LotSize + (LotIncrement * SellOrders), 2);
}
如果 (Bid >= HighestSell + (Spacing * Point))
{
// 如果 (乘数)
如果 (乘数 == 1)
Lots = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, SellOrders), 2);
否则
Lots = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * SellOrders), 2);
}
如果(Lots == 0)
{
// 如果(乘数)
如果 (乘数 == 1)
Lots = NormalizeDouble(LotSize, 2);
否则
Lots = NormalizeDouble(LotSize, 2);
}
OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, TradeComment, Reference, Red) 。
Error = GetLastError();
如果(Error != 0)
Write("错误打开卖出订单。" + ErrorDescription(Error) + " (D" + Error + ") Bid:" + Bid + " Slippage:" + Slippage)。
否则
{
TickPrice = Close[0];
TradeAllowed = false。
}
}
}
这是一些可以做的吗?
帮助~只有一个错误,用了3个小时仍然找不到它
我很担心,因为我找不到如何纠正下面的错误。
谁能告诉我哪里出错了吗?或者帮我调试一下,我已经附上了文件,见图~。
'end_of_program' - 不平衡的左括号 C:\Program Files\ MetaTraderexperts\scripts\delete_pending_SAM.mq4 (38, 2)
它是一个脚本文件~~
//+------------------------------------------------------------------+
//| delete_pending.mq4|
//| Copyright ?2004, MetaQuotes Software Corp.|
//+------------------------------------------------------------------+
#property copyright "Copyright ?2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property show_inputs
bool result;
extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE
//+------------------------------------------------------------------+
//| 脚本 "删除挂单" |
//+------------------------------------------------------------------+
int start()
{
for (int number=0; ( number <= OrdersTotal()+1); number++ )
{for (int times=0;( times <= OrdersTotal()+1); times++ )
{if(OrderSelect(number,SELECT_BY_POS,MODE_TRADES) )
{if((OrderType()==OP_BUY)||(OrderType()==OP_SELL)) break;
如果((OverSymbolDel ==0)&&(Symbol()==OrderSymbol()) delPending()。
如果 (OverSymbolDel ==1) delPending();
}
否则 Print("订单选择时出错", GetLastError() ) ;
}
}
}
//+------------------------------------------------------------------+
空白的delPending()
{OrderPrint();
int ticket =OrderTicket();
result=OrderDelete(ticket);
if (result==False) Print("Error when delete Order" , GetLastError())。
}
对chiwing
试试这个。
#property link "http://www.metaquotes.net/"
#property show_inputs
bool result;
extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE
//+------------------------------------------------------------------+
//| script "delete pending order" |
//+------------------------------------------------------------------+
int start()
{
for (int number=OrdersTotal()-1; number >= 0; number--)
{
OrderSelect(number,SELECT_BY_POS,MODE_TRADES);
if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;
if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();
if (OverSymbolDel ==1) delPending();
}
}
//+------------------------------------------------------------------+
void delPending()
{
OrderPrint();
int ticket =OrderTicket();
result=OrderDelete(ticket);
if (!result) Print("Error when delete Order ", GetLastError() );
}改为:如果((OrderType()==OP_BUY ||(OrderType()==OP_SELL)) countinue;。
试试这个。
#property link "http://www.metaquotes.net/"
#property show_inputs
bool result;
extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE
//+------------------------------------------------------------------+
//| script "delete pending order" |
//+------------------------------------------------------------------+
int start()
{
for (int number=OrdersTotal()-1; number >= 0; number--)
{
OrderSelect(number,SELECT_BY_POS,MODE_TRADES);
if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;
if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();
if (OverSymbolDel ==1) delPending();
}
}
//+------------------------------------------------------------------+
void delPending()
{
OrderPrint();
int ticket =OrderTicket();
result=OrderDelete(ticket);
if (!result) Print("Error when delete Order ", GetLastError() );
}谢谢你的帮助~~
我发现我的错误。
{if(OrderSelect(number,SELECT_BY_POS,MODE_TRADES) )
改为
OrderSelect(number,SELECT_BY_POS,MODE_TRADES)。
{if((OrderType()==OP_BUY)|| (OrderType()==OP_SELL) ) break;
改为
如果((OrderType()==OP_BUY)|| (OrderType()==OP_SELL) )继续计算。