编码帮助 - 页 245 1...238239240241242243244245246247248249250251252...786 新评论 macerina 2014.03.17 01:12 #2441 mladen: 马塞里纳仅仅是第一部分(其余部分仅仅是该部分的变化)。 如果ema(7)< ema(21),并且之前的ema(7)<之前的ema(21),那么如果ema(of rsi(14),9)< rsi(14),就是买入信号。 你也可以这样说。 如果macd(7,12)<和之前的macd(7,12)<0,那么如果ema(of rsi(14),9)<rsi(14)的信号为买入。 谢谢你的回答,mladen,是否可以用这个标准来编码一个MT4指标? 谢谢 Mladen Rakic 2014.03.17 06:12 #2442 macerina: 谢谢你的回答 mladen 是否可以用这个标准来编码一个mt4指标? 马卡里娜 那是一个简单的MACD+RSI系统。我相信已经有这样的系统了。如果没有这样的系统,做一个指标是很容易的,然后它就会被做出来。 Hasan Oridroo 2014.03.17 06:56 #2443 mladen: 请张贴你试图实现你在这里所描述的代码的部分:https://www.mql5.com/en/forum/174385/page162(不是在订单上放置3个获利和管理3个跟踪止损,而是试图做你所描述的部分),然后,也许有人可以帮助你的编码。 //计算未平仓的买入订单。 iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol())。 //计算未平仓的卖单。 iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol())。 如果(iOpenOrders_Buy==3 || iOpenOrders_Sell==3) { if(TrailingStop>0 && TrailingStart>0) TrailOrder (TrailingStart, TrailingStop);} 如果(iOpenOrders_Buy==1 || iOpenOrders_Sell==1) { if(TrailingStop_2>0 && TrailingStart_2>0) TrailOrder_3 (TrailingStart_2, TrailingStop_2); } ////////////////////////////////////////////////////////////////////////////////////////////// 这是EA寻找所附交易对的未平仓订单数量的部分。 如果它发现有3个订单,它将遵循通常的追踪止损功能。如果它发现只有一个交易在运行,那么它将遵循第二个追踪止损功能。 这对单个货币对来说运行得很好,但当我把这个EA连接到多个图表(货币对)时,它就不工作了,因为它通过'OrdersTotal()'函数获取所有未结订单。 我马上想到一个问题:你怎么知道有3个订单,然后只剩下1个(该EA中没有一行代码试图找出这一点)。 //结束 - 关闭开放的卖出头寸------------------------------------------ double OpenPrice=Ask; int count=3。 如果(count==3) { BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Buy Order", MagicNumber, 0,Blue)。 if (BuyOrder_1>0) //检查订单是否被开启 { sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " 买入订单1成功发送。Ticket=" + BuyOrder_1; count = count - 1; ////////////////////////////////////////////////////////////// 因此,count是递减的,打开订单直到count=1。因此,最初count=3时,有3个订单被打开。 Coding help 如何编码? 基本问题... Mladen Rakic 2014.03.17 07:06 #2444 Oridroo://计算未平仓的买入订单。iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol())。//计算开放的卖出订单。iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol())。如果(iOpenOrders_Buy==3 || iOpenOrders_Sell==3){ if(TrailingStop>0 && TrailingStart>0) TrailOrder (TrailingStart, TrailingStop); }如果(iOpenOrders_Buy==1 || iOpenOrders_Sell==1){if(TrailingStop_2>0 && TrailingStart_2>0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);}//////////////////////////////////////////////////////////////////////////////////////////////这是EA寻找所附交易对的未平仓订单数量的部分。如果它发现有3个订单,它将遵循通常的追踪止损功能。如果它发现只有一个交易在运行,那么它将遵循第二个追踪止损功能。这对单个货币对来说运行得很好,但是当我把这个EA附加到多个图表(货币对)上时,它就不工作了,因为它通过'OrdersTotal()'函数获取所有未结订单。//结束 - 关闭未平仓的卖出头寸------------------------------------------double OpenPrice=Ask;int count=3。如果(count==3){BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Buy Order", MagicNumber, 0,Blue)。if (BuyOrder_1>0) //检查订单是否被开启{sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " 买入订单1成功发送。Ticket=" + BuyOrder_1;count = count - 1;////////////////////////////////////////////////////////////// 因此,计数是减少的,开单直到计数=1。因此,3个订单被打开,因为最初计数=3。 问题是:它是如何知道曾经有3个已开订单,然后只剩下一个?只剩下一个已开订单的事实并不能说明什么。您必须在已关闭的订单列表中查看 另外两个属于三联单的订单,由于经纪人可以改变您的评论字段,您没有办法知道一些订单是同一个三联单的一部分(在订单列表中没有字段可以用来标记一些订单是属于同一组订单的)。 你可以尝试使用文件来保存属于三联单的票号,但是,在试图从另一个终端使用同一EA的情况下,你会得到可怕的错误。当你重新安装metatrader时,同样的事情也会发生。使用全局变量就更糟糕了(它们和使用文件几乎是一回事--但更糟糕),所以没有任何有意义的方法可以让你正确追踪三联单。 那么,你如何发现1个已开订单是3个订单中的最后一个已开订单,还是一个新的三联订单中的第一个已开订单? BigJoe 2014.03.17 07:08 #2445 mladen: 问题如下:它是如何知道曾经有3个开仓的订单,然后只剩下一个了?只剩下一个已开的订单这一事实并不表明什么。你必须在已关闭的订单列表中查看另外两个属于三联单的订单,由于经纪人可以改变你的评论字段,你没有办法知道一些订单是同一个三联单的一部分(在订单列表中没有字段可以用来标记一些订单属于同一个订单组)。 那么,你如何发现一个已打开的订单是3个订单中最后一个已打开的订单,还是一个新三联单的第一个已打开的订单? Mladen, 查看你的邮件,需要编码员 梦想有一个大的PM图标 ! Hasan Oridroo 2014.03.17 07:24 #2446 mladen: 那么,你如何发现1个已开的订单是3个订单中最后一个已开的订单,还是一个新的三联订单中第一个已开的订单? 有一个条件。 如果(MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0) 因此,我确保如果有任何现有的买入订单,它不会打开任何新的买入订单,尽管条件得到满足。只有当没有任何现有的买入/卖出订单时,它才会打开一个新的订单。 因为它一次打开3个相同类型的订单(买入/卖出),如果其中两个已经关闭,那么剩下的一个肯定是相同类型的。 我已经测试过了。所以不会有任何混淆。 Mladen Rakic 2014.03.17 07:32 #2447 Oridroo: 有一个条件。如果(MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0) 因此,我确保如果有任何现有的买入订单,它不会打开任何新的买入订单,尽管得到条件的满足。只有当没有任何现有的买入/卖出订单时,它才会打开一个新的订单。 因为它一次打开3个相同类型的订单(买入/卖出),如果其中两个已经关闭,那么剩下的一个肯定是相同类型的。 我已经测试过了。所以没有任何疑惑。 在整个事情中,有很多假设。第一个假设是,当你试图打开3个订单时,它实际上会打开3个订单。如果它只开一个呢?以此类推... 对不起。但似乎我们一直在谈论不同的事情。我希望有人能帮助你,因为我不能。 快乐交易 Hasan Oridroo 2014.03.17 07:40 #2448 mladen: 在整个事情中,有很多的假设。第一个假设是,当你试图打开3个订单时,它实际上会打开3个订单。如果它只开了一个呢?以此类推...对不起。但似乎我们一直在谈论不同的事情。我希望有人能帮助你,因为我不能。 交易愉快 如果你不能,也没关系。 我已经用不同的经纪商测试了一段时间,到目前为止,它还没有 "失败 "开出3个订单。 无论如何,我想你至少可以告诉我,在我调用'OrdersTotal()'时,什么地方/逻辑使EA能够区分不同的交易对? 任何小的EA例子都可以。 Mladen Rakic 2014.03.17 11:26 #2449 macerina: 谢谢你的回答 mladen 是否可以用这个标准来编码一个mt4指标? 马卡里纳 检查这个帖子中的指标:https://www.mql5.com/en/forum/173574/page432。它与阿斯本图形代码描述的几乎完全一样。 macerina 2014.03.17 21:40 #2450 谢谢你Mladen的代码...这是否像您在前面的逻辑中解释的那样,有双重macd 比较和50交叉。 谢谢你 1...238239240241242243244245246247248249250251252...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
马塞里纳
仅仅是第一部分(其余部分仅仅是该部分的变化)。
如果ema(7)< ema(21),并且之前的ema(7)<之前的ema(21),那么如果ema(of rsi(14),9)< rsi(14),就是买入信号。
你也可以这样说。
如果macd(7,12)<和之前的macd(7,12)<0,那么如果ema(of rsi(14),9)<rsi(14)的信号为买入。谢谢你的回答,mladen,是否可以用这个标准来编码一个MT4指标?
谢谢
谢谢你的回答 mladen 是否可以用这个标准来编码一个mt4指标?
马卡里娜
那是一个简单的MACD+RSI系统。我相信已经有这样的系统了。如果没有这样的系统,做一个指标是很容易的,然后它就会被做出来。
请张贴你试图实现你在这里所描述的代码的部分:https://www.mql5.com/en/forum/174385/page162(不是在订单上放置3个获利和管理3个跟踪止损,而是试图做你所描述的部分),然后,也许有人可以帮助你的编码。
//计算未平仓的买入订单。
iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol())。
//计算未平仓的卖单。
iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol())。
如果(iOpenOrders_Buy==3 || iOpenOrders_Sell==3)
{
if(TrailingStop>0 && TrailingStart>0) TrailOrder (TrailingStart, TrailingStop);}
如果(iOpenOrders_Buy==1 || iOpenOrders_Sell==1)
{
if(TrailingStop_2>0 && TrailingStart_2>0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);
}
//////////////////////////////////////////////////////////////////////////////////////////////
这是EA寻找所附交易对的未平仓订单数量的部分。
如果它发现有3个订单,它将遵循通常的追踪止损功能。如果它发现只有一个交易在运行,那么它将遵循第二个追踪止损功能。
这对单个货币对来说运行得很好,但当我把这个EA连接到多个图表(货币对)时,它就不工作了,因为它通过'OrdersTotal()'函数获取所有未结订单。
//结束 - 关闭开放的卖出头寸------------------------------------------
double OpenPrice=Ask;
int count=3。
如果(count==3)
{
BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Buy Order", MagicNumber, 0,Blue)。
if (BuyOrder_1>0) //检查订单是否被开启
{
sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " 买入订单1成功发送。Ticket=" + BuyOrder_1;
count = count - 1;
//////////////////////////////////////////////////////////////
因此,count是递减的,打开订单直到count=1。因此,最初count=3时,有3个订单被打开。
//计算未平仓的买入订单。
iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol())。
//计算开放的卖出订单。
iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol())。
如果(iOpenOrders_Buy==3 || iOpenOrders_Sell==3)
{
if(TrailingStop>0 && TrailingStart>0) TrailOrder (TrailingStart, TrailingStop);}
如果(iOpenOrders_Buy==1 || iOpenOrders_Sell==1)
{
if(TrailingStop_2>0 && TrailingStart_2>0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);
}
//////////////////////////////////////////////////////////////////////////////////////////////
这是EA寻找所附交易对的未平仓订单数量的部分。
如果它发现有3个订单,它将遵循通常的追踪止损功能。如果它发现只有一个交易在运行,那么它将遵循第二个追踪止损功能。
这对单个货币对来说运行得很好,但是当我把这个EA附加到多个图表(货币对)上时,它就不工作了,因为它通过'OrdersTotal()'函数获取所有未结订单。
//结束 - 关闭未平仓的卖出头寸------------------------------------------
double OpenPrice=Ask;
int count=3。
如果(count==3)
{
BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Buy Order", MagicNumber, 0,Blue)。
if (BuyOrder_1>0) //检查订单是否被开启
{
sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " 买入订单1成功发送。Ticket=" + BuyOrder_1;
count = count - 1;
//////////////////////////////////////////////////////////////
因此,计数是减少的,开单直到计数=1。因此,3个订单被打开,因为最初计数=3。问题是:它是如何知道曾经有3个已开订单,然后只剩下一个?只剩下一个已开订单的事实并不能说明什么。您必须在已关闭的订单列表中查看 另外两个属于三联单的订单,由于经纪人可以改变您的评论字段,您没有办法知道一些订单是同一个三联单的一部分(在订单列表中没有字段可以用来标记一些订单是属于同一组订单的)。
你可以尝试使用文件来保存属于三联单的票号,但是,在试图从另一个终端使用同一EA的情况下,你会得到可怕的错误。当你重新安装metatrader时,同样的事情也会发生。使用全局变量就更糟糕了(它们和使用文件几乎是一回事--但更糟糕),所以没有任何有意义的方法可以让你正确追踪三联单。
那么,你如何发现1个已开订单是3个订单中的最后一个已开订单,还是一个新的三联订单中的第一个已开订单?
问题如下:它是如何知道曾经有3个开仓的订单,然后只剩下一个了?只剩下一个已开的订单这一事实并不表明什么。你必须在已关闭的订单列表中查看另外两个属于三联单的订单,由于经纪人可以改变你的评论字段,你没有办法知道一些订单是同一个三联单的一部分(在订单列表中没有字段可以用来标记一些订单属于同一个订单组)。 那么,你如何发现一个已打开的订单是3个订单中最后一个已打开的订单,还是一个新三联单的第一个已打开的订单?
Mladen,
查看你的邮件,需要编码员
梦想有一个大的PM图标 !
那么,你如何发现1个已开的订单是3个订单中最后一个已开的订单,还是一个新的三联订单中第一个已开的订单?
有一个条件。
如果(MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)
因此,我确保如果有任何现有的买入订单,它不会打开任何新的买入订单,尽管条件得到满足。只有当没有任何现有的买入/卖出订单时,它才会打开一个新的订单。
因为它一次打开3个相同类型的订单(买入/卖出),如果其中两个已经关闭,那么剩下的一个肯定是相同类型的。
我已经测试过了。所以不会有任何混淆。
有一个条件。
如果(MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)
因此,我确保如果有任何现有的买入订单,它不会打开任何新的买入订单,尽管得到条件的满足。只有当没有任何现有的买入/卖出订单时,它才会打开一个新的订单。
因为它一次打开3个相同类型的订单(买入/卖出),如果其中两个已经关闭,那么剩下的一个肯定是相同类型的。
我已经测试过了。所以没有任何疑惑。在整个事情中,有很多假设。第一个假设是,当你试图打开3个订单时,它实际上会打开3个订单。如果它只开一个呢?以此类推...
对不起。但似乎我们一直在谈论不同的事情。我希望有人能帮助你,因为我不能。
快乐交易
在整个事情中,有很多的假设。第一个假设是,当你试图打开3个订单时,它实际上会打开3个订单。如果它只开了一个呢?以此类推...
对不起。但似乎我们一直在谈论不同的事情。我希望有人能帮助你,因为我不能。
交易愉快如果你不能,也没关系。
我已经用不同的经纪商测试了一段时间,到目前为止,它还没有 "失败 "开出3个订单。
无论如何,我想你至少可以告诉我,在我调用'OrdersTotal()'时,什么地方/逻辑使EA能够区分不同的交易对?
任何小的EA例子都可以。
谢谢你的回答 mladen 是否可以用这个标准来编码一个mt4指标?
马卡里纳
检查这个帖子中的指标:https://www.mql5.com/en/forum/173574/page432。它与阿斯本图形代码描述的几乎完全一样。
谢谢你Mladen的代码...这是否像您在前面的逻辑中解释的那样,有双重macd 比较和50交叉。
谢谢你