[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 279 1...272273274275276277278279280281282283284285286...631 新评论 Paladin80 2012.07.27 09:30 #2781 veti-k: 嗨,你能告诉我如何确定一个订单有多少点的利润吗? 如果你有一个 买入头寸,你必须从当前的买入价中减去开盘价。如果是卖出头寸,你应该从开盘价中减去当前的卖出价。 PapaYozh 2012.07.27 10:10 #2782 paladin80: 如果买入头寸,从当前买入价中减去开盘价。如果是卖出头寸,用开盘价减去当前的卖出价。 侦察员发现,OrderClosePrice()可以代替Bid或Ask使用。 Vitali Pecheryaga 2012.07.27 11:14 #2783 谢谢你))。 [删除] 2012.07.27 11:31 #2784 亲爱的论坛用户,请告诉我如何将iCustom中的一个变量放入ArrayMaximum 中? Виктор 2012.07.27 12:49 #2785 Alexandr24: 尊敬的论坛用户,请您告知如何将iCustom中的一个变量放入ArrayMaximum中? 为此,你需要阅读ArrayMaximum是什么。 。 int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0) 它搜索的是具有最大值的元素。该函数返回数组中最大元素的位置。 搜索是一个过程,而不是一个变量。也就是说,你可以给一个数组元素 分配一个指标值,然后用ArrayMaximum搜索数组中最大的元素。 [删除] 2012.07.27 12:59 #2786 granit77: 为此,你应该阅读什么是ArrayMaximum。 。 int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0) 搜索具有最大值的元素。该函数返回数组中最大元素的位置。 搜索是一个过程,而不是一个变量。也就是说,你可以给一个数组元素分配一个指标值,然后用ArrayMaximum搜索数组中的最大元素。 如何找到 昨天的指标最大值? 我找到了昨天一天的指标的第一个值和最大值,但我找不到昨天的最大值,ArrayMaximum开始在整个图表中搜索,或者可能是通过其他函数完成? [删除] 2012.07.28 06:29 #2787 大家下午好,我坐在电脑前用头撞键盘--我无法修复代码中的一个错误......请帮助一个初学者。 这是我的猫头鹰代码。 外部双倍TakeProfit = 500。 外置双Lots = 0.1。 外部双倍止损=30。 外来的双倍TrailingStop = 30; 外部字符串 Indicator_1 = "SAR(SAR_STEP)"。 外部双SAR_Step = 0.02。 外部双SAR_MaxStep =0.2。 Extern double GeneralShift = 0; // 0 - 未关闭的酒吧,1 - 关闭。 // 这些是将会被 //显示在 // 专家顾问与图表的连接 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { 双A。 int b; int total, ticket, cnt; //只是程序中使用的变量 如果(Bars<100) { Print("小于100的条形图")。 return(0); } // 该条件检查图表历史是否包含100个以上的蜡烛图,如果不包含,则返回错误。 //它将产生一个错误。需要提请大家注意的是 // 缺少信息 如果(TakeProfit<5) { Print("TakeProfit less than 5")。 return(0); } // 该条件检查TakeProfit水平(外部变量之一。 // 控制获利水平。它需要检查//你是否已经设置了止盈水平。 //检查你是否将获利水平设置在你的经纪公司不允许的水平。 // 不允许你的经纪公司。这只是为了在你的专家顾问失败时,你//清楚地知道错误是什么。 // 错误在哪里。我强烈建议设置它。 total=OrdersTotal()。 如果(total<1) //需要进行这种检查,以避免同时打开几个相同的位置。如果不选中它,那么,例如,如果你的EA在随机指数处于超买区时被触发,那么它将在每一个刻度上进行交易,直到它用完所有的保证金。 // 因此,为了限制未平仓合约的数量,这 //限制器。如果它被设置了,那么顾问将不会打开超过一定的//数量的 //位置的数量 <x { // 没有发现未结订单 如果(AccountFreeMargin()<(1000*Lots)) { Print("我们没有钱。Free Margin = ", AccountFreeMargin(); return(0); } // 又是一段辅助性的代码。如果账户中没有足够的钱,它 //打印出一个错误。如果专家顾问工作,这一块完全没有用处 // 实时的,但它在测试历史上非常有用。 如果(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0]); // Open BUY // 终于到了最有趣的部分。取代这些X,我们必须插入 // 触发购买的条件。 { ticket=OrderSend(Symbol(,OP_BUY,Lots,Ask,3,Ask-Stoploss*Point, Ask+TakeProfit*Point, "comment",16384,0,Green); // 这些是购买条件。原则上,这里没有什么可以改变的,但为了拓宽//我的视野,我扩大了范围。 // 我将破译它在这里所说的内容。这里说,我们必须购买 // (OP_BUY)当前的符号(货币对,该专家顾问已连接到该图表)。 //交易规模Lots(在开始时设置的变量)。市场价格,有 //滑移量为3,并且止损和止盈设置在 在//开始时,该交易将被标记为 "评论",并确定数字为0,在 // 在购买点,在图表上,会有一个绿色的滑块,上面有确定的代码 // 16384 如果(ticket>0) { 如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("BUY订单打开:",OrderOpenPrice())。 } else Print("错误打开BUY订单:",GetLastError())。 return(0); } // 这个块只需要用来记录是否一切顺利。 // 或者,以其他方式,记录一个导致某事失败的错误。 //现在卖出赌注的情况也是如此。而不是YYYYYY - 条件 如果(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)<Close[0]) { ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+Stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red); 如果(ticket>0) { 如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("Sell order opened : " ,OrderOpenPrice()); } else Print("错误打开卖出订单:",GetLastError())。 return(0); } return(0); } // 现在退出。这里也没有什么变化,只是RRRRRRRR - 条件 //通过 "买入 "关闭交易,ZZZZZZZ - 通过 "卖出 "关闭交易。 for(cnt=0;cnt // 所有开放的职位都是通过以下方式搜索的 { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。 如果(OrderType()<=OP_SELL && // 检查已开仓的头寸 OrderSymbol()==Symbol()) //检查符号 { 如果(OrderType()==OP_BUY) // 多头头寸被打开。 { //应该关闭吗? if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)<Close[0]) //close BUY. { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // 关闭头寸 return(0); // 退出 } // 检查拖曳式止损 如果(TrailingStop>0) { 如果(Bid-OrderOpenPrice()>Point*TrailingStop) { 如果(OrderStopLoss()<Bid-Point*TrailingStop) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green) 。 return(0); } } } } 否则 // 与空头头寸相同 { //应该关闭吗? 如果(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0])//Close Sell { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // 关闭位置 return(0); // 退出 } // 检查拖曳式止损 如果(TrailingStop>0) { 如果((OrderOpenPrice()-Ask)>(Point*TrailingStop)) { 如果((OrderStopLoss()>(Ask+Point*TrailingStop)) ||(OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red) 。 return(0); } } } } } } } return(0); //-------- } //--------,结束。 [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 EA不能测试,请高手修改一下 [删除] 2012.07.28 06:33 #2788 新兴的汽车交易商不能抓住一个错误!!请帮助我!!!!!!!!!!!!!!!!!! '}'- 不平衡的括号 C:\Program Files (x86)\Forex4you MetaTrader 4\experts\Saurentios V101.mq4 (167, 1) Владимир Тезис 2012.07.28 06:43 #2789 我希望我在格式化这样的代码 时没有撞到我的头。我会修复它的 :) Владимир Тезис 2012.07.28 06:48 #2790 你已经重复了几次错误。 你放一个if条件,然后在它的括号里写一些东西,然后在最后的括号后面放一个分号。 像这样。 if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0]); 这是不对的。这一点是正确的。 if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0]){ } 1...272273274275276277278279280281282283284285286...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
嗨,你能告诉我如何确定一个订单有多少点的利润吗?
如果买入头寸,从当前买入价中减去开盘价。如果是卖出头寸,用开盘价减去当前的卖出价。
侦察员发现,OrderClosePrice()可以代替Bid或Ask使用。
尊敬的论坛用户,请您告知如何将iCustom中的一个变量放入ArrayMaximum中?
。
int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
它搜索的是具有最大值的元素。该函数返回数组中最大元素的位置。搜索是一个过程,而不是一个变量。也就是说,你可以给一个数组元素 分配一个指标值,然后用ArrayMaximum搜索数组中最大的元素。
为此,你应该阅读什么是ArrayMaximum。 。
int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
搜索具有最大值的元素。该函数返回数组中最大元素的位置。搜索是一个过程,而不是一个变量。也就是说,你可以给一个数组元素分配一个指标值,然后用ArrayMaximum搜索数组中的最大元素。
大家下午好,我坐在电脑前用头撞键盘--我无法修复代码中的一个错误......请帮助一个初学者。
这是我的猫头鹰代码。
外部双倍TakeProfit = 500。
外置双Lots = 0.1。
外部双倍止损=30。
外来的双倍TrailingStop = 30;
外部字符串 Indicator_1 = "SAR(SAR_STEP)"。
外部双SAR_Step = 0.02。
外部双SAR_MaxStep =0.2。
Extern double GeneralShift = 0; // 0 - 未关闭的酒吧,1 - 关闭。
// 这些是将会被
//显示在
// 专家顾问与图表的连接
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
双A。
int b;
int total, ticket, cnt;
//只是程序中使用的变量
如果(Bars<100)
{
Print("小于100的条形图")。
return(0);
}
// 该条件检查图表历史是否包含100个以上的蜡烛图,如果不包含,则返回错误。
//它将产生一个错误。需要提请大家注意的是
// 缺少信息
如果(TakeProfit<5)
{
Print("TakeProfit less than 5")。
return(0);
}
// 该条件检查TakeProfit水平(外部变量之一。
// 控制获利水平。它需要检查//你是否已经设置了止盈水平。
//检查你是否将获利水平设置在你的经纪公司不允许的水平。
// 不允许你的经纪公司。这只是为了在你的专家顾问失败时,你//清楚地知道错误是什么。
// 错误在哪里。我强烈建议设置它。
total=OrdersTotal()。
如果(total<1)
//需要进行这种检查,以避免同时打开几个相同的位置。如果不选中它,那么,例如,如果你的EA在随机指数处于超买区时被触发,那么它将在每一个刻度上进行交易,直到它用完所有的保证金。
// 因此,为了限制未平仓合约的数量,这
//限制器。如果它被设置了,那么顾问将不会打开超过一定的//数量的
//位置的数量 <x
{
// 没有发现未结订单
如果(AccountFreeMargin()<(1000*Lots))
{
Print("我们没有钱。Free Margin = ", AccountFreeMargin();
return(0);
}
// 又是一段辅助性的代码。如果账户中没有足够的钱,它
//打印出一个错误。如果专家顾问工作,这一块完全没有用处
// 实时的,但它在测试历史上非常有用。
如果(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0]); // Open BUY
// 终于到了最有趣的部分。取代这些X,我们必须插入
// 触发购买的条件。
{
ticket=OrderSend(Symbol(,OP_BUY,Lots,Ask,3,Ask-Stoploss*Point, Ask+TakeProfit*Point, "comment",16384,0,Green);
// 这些是购买条件。原则上,这里没有什么可以改变的,但为了拓宽//我的视野,我扩大了范围。
// 我将破译它在这里所说的内容。这里说,我们必须购买
// (OP_BUY)当前的符号(货币对,该专家顾问已连接到该图表)。
//交易规模Lots(在开始时设置的变量)。市场价格,有
//滑移量为3,并且止损和止盈设置在
在//开始时,该交易将被标记为 "评论",并确定数字为0,在
// 在购买点,在图表上,会有一个绿色的滑块,上面有确定的代码
// 16384
如果(ticket>0)
{
如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("BUY订单打开:",OrderOpenPrice())。
}
else Print("错误打开BUY订单:",GetLastError())。
return(0);
}
// 这个块只需要用来记录是否一切顺利。
// 或者,以其他方式,记录一个导致某事失败的错误。
//现在卖出赌注的情况也是如此。而不是YYYYYY - 条件
如果(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)<Close[0])
{
ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+Stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
如果(ticket>0)
{
如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("Sell order opened : " ,OrderOpenPrice());
}
else Print("错误打开卖出订单:",GetLastError())。
return(0);
}
return(0);
}
// 现在退出。这里也没有什么变化,只是RRRRRRRR - 条件
//通过 "买入 "关闭交易,ZZZZZZZ - 通过 "卖出 "关闭交易。
for(cnt=0;cnt
// 所有开放的职位都是通过以下方式搜索的
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。
如果(OrderType()<=OP_SELL && // 检查已开仓的头寸
OrderSymbol()==Symbol()) //检查符号
{
如果(OrderType()==OP_BUY) // 多头头寸被打开。
{
//应该关闭吗?
if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)<Close[0]) //close BUY.
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // 关闭头寸
return(0); // 退出
}
// 检查拖曳式止损
如果(TrailingStop>0)
{
如果(Bid-OrderOpenPrice()>Point*TrailingStop)
{
如果(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green) 。
return(0);
}
}
}
}
否则 // 与空头头寸相同
{
//应该关闭吗?
如果(iSAR(NULL,0,SAR_Step,SAR_MaxStep,GeneralShift)>Close[0])//Close Sell
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // 关闭位置
return(0); // 退出
}
// 检查拖曳式止损
如果(TrailingStop>0)
{
如果((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
如果((OrderStopLoss()>(Ask+Point*TrailingStop)) ||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red) 。
return(0);
}
}
}
}
}
}
}
return(0);
//--------
}
//--------,结束。
新兴的汽车交易商不能抓住一个错误!!请帮助我!!!!!!!!!!!!!!!!!!
'}'- 不平衡的括号 C:\Program Files (x86)\Forex4you MetaTrader 4\experts\Saurentios V101.mq4 (167, 1)你已经重复了几次错误。
你放一个if条件,然后在它的括号里写一些东西,然后在最后的括号后面放一个分号。 像这样。
这是不对的。这一点是正确的。