问吧! - 页 145

 

用MQL调用网络服务

有没有人知道如何从专家顾问中调用外部网络服务?

 
 

我想这是最基本的东西,只是我不知道如何访问它。 谁能告诉我,无论我是在日线以外的图表上,如何检索几天前的日线开盘/收盘? 也许可以提供示例代码,这将很有帮助。

谢谢

ET

 

在MetaEditor的帮助中查看iopen和iclose

拉克斯

 
luxinterior:
在MetaEditor的帮助中查看iopen和iclose Lux

谢谢你,它做到了...

ET

 

代码修复请求

你好。

我正试图修改所附的指标,以执行以下内容。

1)使开始日期与颜色1相吻合,现在该指标将系列的第二种颜色(颜色2)绘制在开始日期上,而不是第一种颜色。

2) 输出该系列中每条绘制线的日期、颜色、开盘价、最高价、最低价和收盘价。 该文件将在有新数据时被追加。

谢谢你的帮助。

请注意。

附加的文件:
 

计算最低的低点/使用较高的时间框架趋势/避免传播问题

我试图找到一些可以满足以下要求的编码样本。

为了计算止损点的位置,我希望看到这样的编码:对于任何给定的时间框架,EA可以被告知在过去的X 时间段内的最低低点(或最高点)......然后用这个价格减去(或在最高点的情况下加上)X个点来设置一个止损点。

为了使任何新的短时间框架订单与大时间框架的趋势处于同一方向,我希望看到的编码将允许新订单只在短时间框架图表上与大时间框架图表的趋势处于同一方向。 举个简单的例子,假设一个连接到15分钟图表的EA想在MA1与MA2的交叉点上放置一个买入订单(按照之前的问题,止损放在过去5个柱状图的最低点以下5点),但是我在寻找一种编码,只有在同一货币对的一小时图表上,当前价格高于(或低于)X周期MA的情况下,才会放置新订单。

为了避免由于不寻常的宽幅价差造成的错误开仓/平仓,我希望看到的编码是只根据当前(甚至可以考虑之前的条形图)的收盘来触发订单行动,而不是在条形图仍然开放时触发。 以IBFX为例,我看到通常为5点的点差经常宽至20点(我甚至看到过53点!)。 似乎这样宽的点差动作往往会打开一个新的订单,因为在条形图的形成过程中,MA's已经暂时交叉......但在条形图关闭时,它们并没有交叉,从而使我有一个不想要的买入订单。

如果有任何解决这些问题的代码样本,我们将不胜感激。

 
附加的文件:
 

亲爱的coderguru。

这可能是编码中最简单的工作,以改变颜色.......,我无法做到............。

只要在这个代码中把支撑位改成一种颜色,把阻力位改成不同的颜色即可.......。

这里的阻力和支撑是相似的颜色.....................

当指标被删除时,这些对象不会被删除.............。

提前感谢.............

附加的文件:
 

关于追踪止损/1风险或头寸M的帮助

大家好。

我曾试图在论坛上寻找解决我的问题的方法。

在我的EA的开始。

//---- buy conditions

if(Ask > mybuyconditions)

{

ticket=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-lowestof10bars),((BBupper-BBlower)/(Ask-lowestof10bars))*1000,"Einstieg 1",magic+1,0,Green);

}

//---- sell conditions

if(Bid < mysellconditions)

{

ticket=OrderSend(Symbol(),OP_SELL,LotsShort(),Bid,Spread,Ask+(highestof10bars-Bid),((BBupper-BBlower)/(highestof10bars-Bid))/100,"Einstieg -1",magic-1,0,Red);

}

//----[/CODE]

Stopploss: its easy 10 bars hi/lo

Takeprofit: here i write my formula for my Trailingstop, and that is:

Take the differenz of BBupper - BBlower at the order open time. Then divide by StopLoss in Pips and you have an Factor. Then take the actual BB differenz and divide it by this Faktor. NOW WE HAVE OUR VOLA BB TRAILINGSTOPP!!!!!

SO, my big problem is now to save this FAKTOR!!!! I saved it in th Takeprofit of Ordersend, it works but it is not right!!!!!

And know the 2te Question:

Position Management:

so my order is open and i have my trailing stopp that trails : So and now if the trailingstop is > orderopenprice send next ORDER!!! It's logical because so i can always sicure to risk just my 1 R Risk.

.... if Trailingstopp is > orderopenprice of secondOrder send 3te order.

HERE MY EXAMPLES:

for(int i = (OrdersTotal()-1); i >= 0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 2",magic+2,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2 && CalculateCurrentAfterOrders(Symbol()) <= 1)

{

if(OrderStopLoss()<Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 3",magic+3,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3 && CalculateCurrentAfterOrders(Symbol()) <= 2)

{

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

}

}

}

[CODE] if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

{

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 2",magic+2,0,Green);

return;

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 3",magic+3,0,Green);

return;

}

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(CalculateCurrentOrders(Symbol()) == 0)

{

OrderClose(ticket1,OrderLots(),Ask,Spread,Red); return;

}

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3)

{

OrderClose(i,OrderLots(),Ask,Spread,Red); return;

}

我希望有人能帮助我解决这个问题!!!!!谢谢大家。