[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 423 1...416417418419420421422423424425426427428429430...631 新评论 elektronik 2012.10.09 16:13 #4221 sergeev: 那么函数OrderLots。 我无法理解这个功能,请举例说明。) 它说 "该订单必须使用OrderSelect() 函数进行预选",我如何选择同一方向的所有未结订单? Yury Reshetov 2012.10.09 16:19 #4222 Elektronik: 我不能理解这个功能,请用一个例子帮助我:) 它说 "该订单必须用OrderSelect() 预选",我如何选择同一方向的所有未结订单? 没有办法。只有在循环中用OrderSelect() 逐一进行。 neo777 2012.10.09 16:27 #4223 你能告诉我是否有一个止损 脚本需要插入到这个EA中? double x = ... // Задаем на сколько пипсов выше double sl = NormalizeDouble(High[1] + x * Point, Digits); // Задаем значение стоплосс на x пипсов выше предпоследней свечи 附加的文件: cci_ma_v1.5c_3_.mq4 13 kb elektronik 2012.10.09 16:51 #4224 如何在不进行四舍五入的情况下减少小数点后 的数字? (DoubleToStr(NormalizeDouble(0.109,2),2)); = 0.11和0.10 Yury Reshetov 2012.10.09 16:55 #4225 Elektronik: 如何在不进行四舍五入的情况下减少小数点后的数字? (DoubleToStr(NormalizeDouble(0.109,2),2)); = 0.11和0.10 有无数种方法,例如,使用字符串函数来寻找一个点的位置,并截断超过该点的一个字符的字符串。但是,如果有现成的内置解决方案,我们为什么要无中生有地发明问题?只要把两个改为一个,就可以了。 elektronik 2012.10.09 16:57 #4226 Reshetov: 有无数种方法,例如使用字符串函数找到一个点的位置,并截断超过该点的字符串的一个字符。但如果有一个现成的、现成的解决方案,为什么还要编造问题呢? 请建议一个现成的解决方案:) [删除] 2012.10.09 17:04 #4227 Elektronik: 请告诉我这是否是一个现成的解决方案:) (DoubleToStr(NormalizeDouble(0.109,1)) Рустам 2012.10.09 17:05 #4228 如果不圆滑,就这一个: Reshetov с помощью строковых функций найти местоположение точки и обрезать строку на один символ далее нее Egor Lemeshev 2012.10.09 17:47 #4229 请帮助我了解哪里出了问题。 //+------------------------------------------------------------------+ //| AAAA.mq4 | //| | //| | //+------------------------------------------------------------------+ #财产版权"" #属性链接"" 外部字符串 TimeStart = "00:00"; //控制期开始的时间。 extern string TimeEnd = "00:00"; //控制期结束的时间。 外置双数LOT = 0.01; // lot 外置 int Magic = 777; // magic double marga,Lot,SL,TP; // entered margin,lot, stop loss and take profit variables int Total,Orders,tipOrders,TradeDey; // 变量类型,订单类型,交易日。 //+---------------------------------------------------------------------------------------------------------------------------------------+ //|专家顾问的功能 //+---------------------------------------------------------------------------------------------------------------------------------------+ int start() // 初始化的函数 start { datetime Time_Start = StrToTime(StringConcatenate(Day(),".",Month(),".",Year(),"",TimeStart, ":00"); // Start parameters // datetime Time_End = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeEnd, ":00"); // 结束参数// 总数=0; // 如果没有订单 for(int i=1; i<=OrdersTotal(); i++) // 订单循环 { 如果(OrderSelect(i-1,SELECT_BY_POS)==false) // 如果没有市场订单 { 如果//如果。 { int BarStart = iBarShift(NULL,PERIOD_M1,Time_Start,false); // 在M1的检查周期开始时搜索条形。 int BarEnd = iBarShift(NULL,PERIOD_M1,Time_End,false); //在m1处搜索检查期的条形结束。 double Max_Price=iHigh(NULL,0,iHighest(NULL,PERIOD_M1,MODE_HIGH,BarStart-BarEnd,BarEnd)); //周期内最高价格值。 double Min_Price=iLow (NULL,0,iLowest (NULL,PERIOD_M1,MODE_LOW,BarStart-BarEnd,BarEnd)); //周期内最低价格值。 } 如果(TimeCurrent()>Time_End &&ObjectFind("bar0"+Time_End)==-) //图形显示设置 { ObjectCreate("bar0"+Time_End, OBJ_RECTANGLE, 0, 0,0, 0,0)。 ObjectSet("bar0"+Time_End, OBJPROP_STYLE, STYLE_SOLID)。 ObjectSet("bar0"+Time_End, OBJPROP_COLOR, Blue)。 ObjectSet("bar0"+Time_End, OBJPROP_BACK, true)。 ObjectSet("bar0"+Time_End, OBJPROP_TIME1,Time_Start)。 ObjectSet("bar0"+Time_End, OBJPROP_PRICE1,Max_Price)。 ObjectSet("bar0"+Time_End, OBJPROP_TIME2,Time_End)。 ObjectSet("bar0"+Time_End, OBJPROP_PRICE2,Min_Price)。 } 如果(Bid<Max_Price) OrderSend(Symbol(),OP_BUYSTOP,LOT,Ask,3,Min_Price, //下BUY挂单的条件 NormalizeDouble(Ask + Max_Price - Min_Price,Digits), "UPDD",Magic,Blue)。 如果(Bid>Max_Price) Comment("Pending order cannot be placed on Bid")。 如果(Bid>Min_Price) OrderSend(Symbol(),OP_SELLSTOP,LOT,Bid,3,Min_Price, //下卖出挂单的条件。 NormalizeDouble(Ask + Max_Pric-Min_Price,Digits), "UPDD",Magic,Blue)。 如果(Bid<Max_Price) Comment("挂单不能放在SELL上")。 } 返回。 } 不能编译。否则它应该从范围内上下放置两个挂单。 [ARCHIVE!] Any rookie question, 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 原始想法 Alexander 2012.10.10 01:48 #4230 Legeo777:请帮助我了解哪里出了问题。//+------------------------------------------------------------------+//| AAAA.mq4 |//| |//| |//+------------------------------------------------------------------+#财产版权""#属性链接""外部字符串 TimeStart = "00:00"; //控制期开始的时间。extern string TimeEnd = "00:00"; //控制期结束的时间。外置双数LOT = 0.01; // lot外置 int Magic = 777; // magicdouble marga,Lot,SL,TP; // entered margin,lot, stop loss and take profit variablesint Total,Orders,tipOrders,TradeDey; // 变量类型,订单类型,交易日。//+---------------------------------------------------------------------------------------------------------------------------------------+//|专家顾问的功能//+---------------------------------------------------------------------------------------------------------------------------------------+int start() // 初始化的函数 start{datetime Time_Start = StrToTime(StringConcatenate(Day(),".",Month(),".",Year(),"",TimeStart, ":00"); // Start parameters //datetime Time_End = StrToTime(StringConcatenate(Day(),".",Month(),".",Year(),",TimeEnd, ":00"); // End parameters//总数=0; // 如果没有订单 for(int i=1; i<=OrdersTotal(); i++) // 订单循环{如果(OrderSelect(i-1,SELECT_BY_POS)==false) // 如果没有市场订单{ 如果 //如果: -删除 {int BarStart = iBarShift(NULL,PERIOD_M1,Time_Start,false); // 在M1的检查周期开始时搜索条形。int BarEnd = iBarShift(NULL,PERIOD_M1,Time_End,false); //在m1处搜索检查期的条形结束。double Max_Price=iHigh(NULL,0,iHighest(NULL,PERIOD_M1,MODE_HIGH,BarStart-BarEnd,BarEnd)); //周期内最高价格值。double Min_Price=iLow (NULL,0,iLowest (NULL,PERIOD_M1,MODE_LOW,BarStart-BarEnd,BarEnd)); //周期内最低价格值。}如果(TimeCurrent()>Time_End &&ObjectFind("bar0"+Time_End)==-) //图形显示设置{ObjectCreate("bar0"+Time_End, OBJ_RECTANGLE, 0, 0,0, 0,0)。ObjectSet("bar0"+Time_End, OBJPROP_STYLE, STYLE_SOLID)。ObjectSet("bar0"+Time_End, OBJPROP_COLOR, Blue)。ObjectSet("bar0"+Time_End, OBJPROP_BACK, true)。ObjectSet("bar0"+Time_End, OBJPROP_TIME1,Time_Start)。ObjectSet("bar0"+Time_End, OBJPROP_PRICE1,Max_Price)。ObjectSet("bar0"+Time_End, OBJPROP_TIME2,Time_End)。ObjectSet("bar0"+Time_End, OBJPROP_PRICE2,Min_Price)。}如果(Bid<Max_Price) OrderSend(Symbol(),OP_BUYSTOP,LOT,Ask,3,Min_Price, //放置BUY挂单的条件 -挂单不能由Ask或Bid放置NormalizeDouble(Ask + Max_Price - Min_Price,Digits), "UPDD",Magic,Blue)。如果(Bid>Max_Price) Comment("Pending order cannot be placed on Bid")。如果(Bid>Min_Price) OrderSend(Symbol(),OP_SELLSTOP,LOT,Bid,3,Min_Price, //下卖出挂单的条件 -相同NormalizeDouble(Ask + Max_Pric-Min_Price,Digits), "UPDD",Magic,Blue)。如果(Bid<Max_Price)--这里肯定有一个错误 Comment("挂单不能放在SELL上")。 }} - 添加返回。}我不能编译它。 实际上,它应该从范围内上下放置两个挂单。 修复后,应该可以编译,但可能无法工作--错误的时间设置,非正常化的价格,没有检查止损与开盘价 的接近程度。 1...416417418419420421422423424425426427428429430...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
那么函数OrderLots。
我无法理解这个功能,请举例说明。)
它说 "该订单必须使用OrderSelect() 函数进行预选",我如何选择同一方向的所有未结订单?
我不能理解这个功能,请用一个例子帮助我:)
它说 "该订单必须用OrderSelect() 预选",我如何选择同一方向的所有未结订单?
没有办法。只有在循环中用OrderSelect() 逐一进行。
你能告诉我是否有一个止损 脚本需要插入到这个EA中?
如何在不进行四舍五入的情况下减少小数点后 的数字?
(DoubleToStr(NormalizeDouble(0.109,2),2)); = 0.11和0.10
如何在不进行四舍五入的情况下减少小数点后的数字?
(DoubleToStr(NormalizeDouble(0.109,2),2)); = 0.11和0.10
有无数种方法,例如使用字符串函数找到一个点的位置,并截断超过该点的字符串的一个字符。但如果有一个现成的、现成的解决方案,为什么还要编造问题呢?
请建议一个现成的解决方案:)
请告诉我这是否是一个现成的解决方案:)
如果不圆滑,就这一个:
Reshetov с помощью строковых функций найти местоположение точки и обрезать строку на один символ далее нее
请帮助我了解哪里出了问题。
//+------------------------------------------------------------------+
//| AAAA.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#财产版权""
#属性链接""
外部字符串 TimeStart = "00:00"; //控制期开始的时间。
extern string TimeEnd = "00:00"; //控制期结束的时间。
外置双数LOT = 0.01; // lot
外置 int Magic = 777; // magic
double marga,Lot,SL,TP; // entered margin,lot, stop loss and take profit variables
int Total,Orders,tipOrders,TradeDey; // 变量类型,订单类型,交易日。
//+---------------------------------------------------------------------------------------------------------------------------------------+
//|专家顾问的功能
//+---------------------------------------------------------------------------------------------------------------------------------------+
int start() // 初始化的函数 start
{
datetime Time_Start = StrToTime(StringConcatenate(Day(),".",Month(),".",Year(),"",TimeStart, ":00"); // Start parameters //
datetime Time_End = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeEnd, ":00"); // 结束参数//
总数=0; // 如果没有订单
for(int i=1; i<=OrdersTotal(); i++) // 订单循环
{
如果(OrderSelect(i-1,SELECT_BY_POS)==false) // 如果没有市场订单
{
如果//如果。
{
int BarStart = iBarShift(NULL,PERIOD_M1,Time_Start,false); // 在M1的检查周期开始时搜索条形。
int BarEnd = iBarShift(NULL,PERIOD_M1,Time_End,false); //在m1处搜索检查期的条形结束。
double Max_Price=iHigh(NULL,0,iHighest(NULL,PERIOD_M1,MODE_HIGH,BarStart-BarEnd,BarEnd)); //周期内最高价格值。
double Min_Price=iLow (NULL,0,iLowest (NULL,PERIOD_M1,MODE_LOW,BarStart-BarEnd,BarEnd)); //周期内最低价格值。
}
如果(TimeCurrent()>Time_End &&ObjectFind("bar0"+Time_End)==-) //图形显示设置
{
ObjectCreate("bar0"+Time_End, OBJ_RECTANGLE, 0, 0,0, 0,0)。
ObjectSet("bar0"+Time_End, OBJPROP_STYLE, STYLE_SOLID)。
ObjectSet("bar0"+Time_End, OBJPROP_COLOR, Blue)。
ObjectSet("bar0"+Time_End, OBJPROP_BACK, true)。
ObjectSet("bar0"+Time_End, OBJPROP_TIME1,Time_Start)。
ObjectSet("bar0"+Time_End, OBJPROP_PRICE1,Max_Price)。
ObjectSet("bar0"+Time_End, OBJPROP_TIME2,Time_End)。
ObjectSet("bar0"+Time_End, OBJPROP_PRICE2,Min_Price)。
}
如果(Bid<Max_Price) OrderSend(Symbol(),OP_BUYSTOP,LOT,Ask,3,Min_Price, //下BUY挂单的条件
NormalizeDouble(Ask + Max_Price - Min_Price,Digits), "UPDD",Magic,Blue)。
如果(Bid>Max_Price)
Comment("Pending order cannot be placed on Bid")。
如果(Bid>Min_Price) OrderSend(Symbol(),OP_SELLSTOP,LOT,Bid,3,Min_Price, //下卖出挂单的条件。
NormalizeDouble(Ask + Max_Pric-Min_Price,Digits), "UPDD",Magic,Blue)。
如果(Bid<Max_Price)
Comment("挂单不能放在SELL上")。
}
返回。
}
不能编译。否则它应该从范围内上下放置两个挂单。
请帮助我了解哪里出了问题。
//+------------------------------------------------------------------+
//| AAAA.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#财产版权""
#属性链接""
外部字符串 TimeStart = "00:00"; //控制期开始的时间。
extern string TimeEnd = "00:00"; //控制期结束的时间。
外置双数LOT = 0.01; // lot
外置 int Magic = 777; // magic
double marga,Lot,SL,TP; // entered margin,lot, stop loss and take profit variables
int Total,Orders,tipOrders,TradeDey; // 变量类型,订单类型,交易日。
//+---------------------------------------------------------------------------------------------------------------------------------------+
//|专家顾问的功能
//+---------------------------------------------------------------------------------------------------------------------------------------+
int start() // 初始化的函数 start
{
datetime Time_Start = StrToTime(StringConcatenate(Day(),".",Month(),".",Year(),"",TimeStart, ":00"); // Start parameters //
datetime Time_End = StrToTime(StringConcatenate(Day(),".",Month(),".",Year(),",TimeEnd, ":00"); // End parameters//
总数=0; // 如果没有订单
for(int i=1; i<=OrdersTotal(); i++) // 订单循环
{
如果(OrderSelect(i-1,SELECT_BY_POS)==false) // 如果没有市场订单
{
如果 //如果: -删除
{
int BarStart = iBarShift(NULL,PERIOD_M1,Time_Start,false); // 在M1的检查周期开始时搜索条形。
int BarEnd = iBarShift(NULL,PERIOD_M1,Time_End,false); //在m1处搜索检查期的条形结束。
double Max_Price=iHigh(NULL,0,iHighest(NULL,PERIOD_M1,MODE_HIGH,BarStart-BarEnd,BarEnd)); //周期内最高价格值。
double Min_Price=iLow (NULL,0,iLowest (NULL,PERIOD_M1,MODE_LOW,BarStart-BarEnd,BarEnd)); //周期内最低价格值。
}
如果(TimeCurrent()>Time_End &&ObjectFind("bar0"+Time_End)==-) //图形显示设置
{
ObjectCreate("bar0"+Time_End, OBJ_RECTANGLE, 0, 0,0, 0,0)。
ObjectSet("bar0"+Time_End, OBJPROP_STYLE, STYLE_SOLID)。
ObjectSet("bar0"+Time_End, OBJPROP_COLOR, Blue)。
ObjectSet("bar0"+Time_End, OBJPROP_BACK, true)。
ObjectSet("bar0"+Time_End, OBJPROP_TIME1,Time_Start)。
ObjectSet("bar0"+Time_End, OBJPROP_PRICE1,Max_Price)。
ObjectSet("bar0"+Time_End, OBJPROP_TIME2,Time_End)。
ObjectSet("bar0"+Time_End, OBJPROP_PRICE2,Min_Price)。
}
如果(Bid<Max_Price) OrderSend(Symbol(),OP_BUYSTOP,LOT,Ask,3,Min_Price, //放置BUY挂单的条件 -挂单不能由Ask或Bid放置
NormalizeDouble(Ask + Max_Price - Min_Price,Digits), "UPDD",Magic,Blue)。
如果(Bid>Max_Price)
Comment("Pending order cannot be placed on Bid")。
如果(Bid>Min_Price) OrderSend(Symbol(),OP_SELLSTOP,LOT,Bid,3,Min_Price, //下卖出挂单的条件 -相同
NormalizeDouble(Ask + Max_Pric-Min_Price,Digits), "UPDD",Magic,Blue)。
如果(Bid<Max_Price)--这里肯定有一个错误
Comment("挂单不能放在SELL上")。
}
} - 添加
返回。
}
我不能编译它。 实际上,它应该从范围内上下放置两个挂单。