如何编码? - 页 46 1...394041424344454647484950515253...347 新评论 Kale 2007.10.28 14:51 #451 antone: 例如,它只能在早上5点至10点交易一个订单,但可以在其他时间再次交易。 这很简单,你需要检查历史上最后一笔订单的开仓时间,然后用TimeDay函数检查日期。如果是今天,就不要交易。 antone 2007.10.29 10:01 #452 Kalenzo: 这很简单,你需要检查历史上最后一笔订单的开仓时间,然后用TimeDay函数检查日期。如果是今天,就不要交易。 你能给我一个如何使用它们的简单脚本吗? 我不是一个程序员,对不起 谢谢! trevman 2007.10.30 21:07 #453 一个跟踪止损/多个订单 我想做一个EA,将所有未结订单的止损修改为与当前的止损相同,这样所有的订单就会在同一水平上关闭。 extern int profit = 100; extern int stop = 20; int start() { int i, HstTotal=OrdersHistoryTotal(); for(i = HstTotal-1; i >= 0; i --) { if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue; OrderModify(i,OrderOpenPrice(),Bid-Point*stop,profit,0,Green); } } ralphronnquist 2007.10.30 22:38 #454 使用OrdersTotal()和MODE_TRADES代替。 samjesse 2007.10.31 04:18 #455 antone 2007.11.03 05:13 #456 Kalenzo: 这很简单,你需要检查历史上最后一笔订单的开仓时间,然后用TimeDay函数检查日期。如果是今天,就不要交易。 for(int k=0;k<OrdersTotal();k++) { OrderSelect(k,SELECT_BY_POS,MODE_TRADES; 如果(OrderSymbol()== "GBPUSD" && OrderMagicNumber()== Magic_Number) { if(OrderOpenTime() != TimeCurrent () ) {Trade = true;} 如果(OrderOpenTime() == TimeCurrent () ) {Trade = false;} } } 我做错了什么?请帮助 MrPip 2007.11.03 07:45 #457 以下是红色的更正。 罗伯特 antone: for(int k=0;k<OrdersTotal();k++) { OrderSelect(k,SELECT_BY_POS,MODE_TRADES) 如果(OrderSymbol()==Symbol()&& OrderMagicNumber()== Magic_Number) { 如果(TimeDay( OrderOpenTime())!=Day()) {Trade = true;}. 如果(TimeDay(OrderOpenTime())==Day()){Trade = false;} } } 同样类型的代码可以用来检查开仓时间是否在两个小时之间,甚至是精确到分钟的时间,如11:45,以防止新的交易。 int openHour = TimeHour(OrderOpenTime())。 如果(openHour > 10 && openHour < 13)Trade = false。 如果(openHour = 13) Trade = true; 我做错了什么?请帮助 MrPip 2007.11.03 07:46 #458 ATTN程序员 - 新的6位数价格的问题 致所有程序员。 我注意到,有些经纪商在价格上使用额外的小数点位,这是一个问题。这将导致在计算诸如StopLoss、TakeProfit或Breakout Levels 时使用Point的地方出现问题。 有一个简单的解决方案。 我现在使用以下函数,用myPoint替换所有对Point的引用。 我在EA的顶部声明一个变量。 double myPoint。 然后在init中使用该函数来设置数值。 init() { myPoint = SetPoint()。 } 然后是这个函数。 // 设置点值为小数点后2位或4位 //以处理使用3位和5位小数的经纪商 double SetPoint() { double mPoint; 如果(Digits < 4) mPoint = 0.01。 否则 mPoint = 0.0001。 return(mPoint); } 一些使用Point来确定画线位置或柱状图大小的指标也会出现问题。 请把这个问题传给任何有程序员需要这些信息的论坛或小组。 我已经在Yahoo group MTE & I上发了帖子。 希望这有帮助。 罗伯特 火鸟EA DoEasy 函数库中的图形(第八十六部分):图形对象集合 - 管理属性修改 Beno 2007.11.03 10:27 #459 日子 我在寻找一些帮助,我似乎无法解决如何在特定的条数/天 内退出一个头寸。 任何帮助都是好的 欢呼声 贝诺 MrPip 2007.11.03 15:03 #460 贝诺。 你可以使用与上述帖子类似的代码来进行非交易。只需检查当前日期是否与开盘日期相隔天数,以便收盘。该代码也可以修改为使用小时或分钟。 另一种方法是在交易开始时计算出关闭交易的时间作为exit_time。然后退出,只需在你的检查退出代码中检查退出时间。 你需要使用适当的公式将正确的值加到开仓时间 上以获得平仓时间。这将使用每条柱子的分钟数*关闭后的柱子数加到OrderOpenTime()中。 希望这有帮助。 罗伯特 Beno: 尊敬的先生我在寻找一些帮助,我似乎无法解决如何在特定的条数/天内退出一个头寸。 任何帮助都是好的 欢呼声 贝诺 1...394041424344454647484950515253...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
例如,它只能在早上5点至10点交易一个订单,但可以在其他时间再次交易。
这很简单,你需要检查历史上最后一笔订单的开仓时间,然后用TimeDay函数检查日期。如果是今天,就不要交易。
这很简单,你需要检查历史上最后一笔订单的开仓时间,然后用TimeDay函数检查日期。如果是今天,就不要交易。
你能给我一个如何使用它们的简单脚本吗? 我不是一个程序员,对不起
谢谢!
一个跟踪止损/多个订单
我想做一个EA,将所有未结订单的止损修改为与当前的止损相同,这样所有的订单就会在同一水平上关闭。
extern int profit = 100;
extern int stop = 20;
int start()
{
int i, HstTotal=OrdersHistoryTotal();
for(i = HstTotal-1; i >= 0; i --)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
OrderModify(i,OrderOpenPrice(),Bid-Point*stop,profit,0,Green);
}
}
使用OrdersTotal()和MODE_TRADES代替。
这很简单,你需要检查历史上最后一笔订单的开仓时间,然后用TimeDay函数检查日期。如果是今天,就不要交易。
for(int k=0;k<OrdersTotal();k++)
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES;
如果(OrderSymbol()== "GBPUSD" && OrderMagicNumber()== Magic_Number)
{
if(OrderOpenTime() != TimeCurrent () ) {Trade = true;}
如果(OrderOpenTime() == TimeCurrent () ) {Trade = false;}
}
}
我做错了什么?请帮助
以下是红色的更正。
罗伯特
for(int k=0;k<OrdersTotal();k++)
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES)
如果(OrderSymbol()==Symbol()&& OrderMagicNumber()== Magic_Number)
{
如果(TimeDay( OrderOpenTime())!=Day()) {Trade = true;}.
如果(TimeDay(OrderOpenTime())==Day()){Trade = false;}
}
}
同样类型的代码可以用来检查开仓时间是否在两个小时之间,甚至是精确到分钟的时间,如11:45,以防止新的交易。
int openHour = TimeHour(OrderOpenTime())。
如果(openHour > 10 && openHour < 13)Trade = false。
如果(openHour = 13) Trade = true;
我做错了什么?请帮助ATTN程序员 - 新的6位数价格的问题
致所有程序员。
我注意到,有些经纪商在价格上使用额外的小数点位,这是一个问题。这将导致在计算诸如StopLoss、TakeProfit或Breakout Levels 时使用Point的地方出现问题。
有一个简单的解决方案。
我现在使用以下函数,用myPoint替换所有对Point的引用。
我在EA的顶部声明一个变量。
double myPoint。
然后在init中使用该函数来设置数值。
init()
{
myPoint = SetPoint()。
}
然后是这个函数。
// 设置点值为小数点后2位或4位
//以处理使用3位和5位小数的经纪商
double SetPoint()
{
double mPoint;
如果(Digits < 4)
mPoint = 0.01。
否则
mPoint = 0.0001。
return(mPoint);
}
一些使用Point来确定画线位置或柱状图大小的指标也会出现问题。
请把这个问题传给任何有程序员需要这些信息的论坛或小组。
我已经在Yahoo group MTE & I上发了帖子。
希望这有帮助。
罗伯特
日子
我在寻找一些帮助,我似乎无法解决如何在特定的条数/天 内退出一个头寸。
任何帮助都是好的
欢呼声
贝诺
贝诺。
你可以使用与上述帖子类似的代码来进行非交易。只需检查当前日期是否与开盘日期相隔天数,以便收盘。该代码也可以修改为使用小时或分钟。
另一种方法是在交易开始时计算出关闭交易的时间作为exit_time。然后退出,只需在你的检查退出代码中检查退出时间。
你需要使用适当的公式将正确的值加到开仓时间 上以获得平仓时间。这将使用每条柱子的分钟数*关闭后的柱子数加到OrderOpenTime()中。
希望这有帮助。
罗伯特
尊敬的先生
我在寻找一些帮助,我似乎无法解决如何在特定的条数/天内退出一个头寸。
任何帮助都是好的
欢呼声
贝诺