[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 234

 
我不知道如何在代码中实现它。 你在哪里看到过现成的代码吗?如果代码能计算出三个方向的无损损失,我就可以了。1.对所有未结订单 2.只买入订单 3.只卖出订单
 
belck:
我不知道如何在代码中实现这一点。你在哪里看到过现成的代码吗?如果代码在三个方向上计算盈亏平衡,我就没问题了:1.对所有未平仓的订单 2.只买入订单 3.只卖出订单
https://www.mql5.com/ru/forum/103719
 

如何在不同的账户自由保证金模式 下计算保证金(开立N手订单的必要资金)?


 

你好!

如果有人知道,你能提供建议吗?

该EA在测试器和真实的价格偏差=2点时都能工作,在市场价格,即偏差=0 时也能工作,是否会有问题? 通信是好的--光纤确实是60Mbit,如果我只是手动打开--执行通常是1-2秒的真实。我的专家顾问里面有一个重播,直到订单成功打开。我问这个问题是因为我在四位数的平台上交易,我想试试五位数的平台。我在一个五位数的演示中试了一下,但订单没有打开,信号只是出现 "试图打开一个订单......",就是这样。日志中没有任何变化或错误。你有什么建议?

根据个人经验,开(平)盘时应设置与市场价格的多少个点的偏差?有必要在EA中规定一些小数点后5位的交易吗? 当在测试器中开单时,预设的SL和TP将减少整整10倍--整整一个小数位?

P.S. 我自己为MQL4写的EA。

真诚的。

 

我对可编辑的文件<indicator.mq4>做了一些处理,要么把它移到某个地方,要么把它复制到一个不同的名字下,但在编译后,在终端的指标列表中,这个名字变成了灰色,不活跃。

然而,该指标可以通过 "列表树 "左侧窗口栏中的侧面菜单获得,并被拖到图表上。

如果你遇到过这种情况,请告知如何补救?

真诚的。

 
prorab:

我对可编辑的文件<indicator.mq4>做了一些处理,要么把它移到某个地方,要么把它复制到一个不同的名字下,但在编译后,在终端的指标列表中,这个名字变成了灰色,不活跃。

然而,该指标可以通过 "列表树 "左侧窗口栏中的侧面菜单获得,并被拖到图表上。

如果你遇到过这种情况,请告知如何纠正?


在终端中右键点击缩进的灰色,然后在菜单中左键点击 "改变",然后在元编辑器中编译,然后重新加载终端并享受生活...:-)
 
Roman.:

在终端中右键点击指标的灰色,然后在菜单中左键点击 "改变",然后在元编辑器中编译,然后重新加载终端并享受生活...:-)
这不会有帮助。源代码已经丢失。
 
Zhunko:
不会的。源头已经丢失。

我今天对我的EA做了同样的程序--它的颜色在终端变成了蓝色,原来是灰色。
 
Roman.:

我今天对我的EA做了同样的程序--它的颜色在终端变成了蓝色,原来是灰色。
如果有一个来源,但它已经被改变了,这是有可能的。即改变源的内容。如果源头丢失或重新命名,将无法找到它。
 

Помогите исправить ошибку в коде советника. Попытался написать советник на основе индикатора Laguerre.mq4. При компиляции выдает ошибку. Место ошибки в коде выделено жирным. Сам индикатор находится в теле советника.

//+------------------------------------------------------------------+
//|Laguerre+.mq4|
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+

//---- 输入参数
外来的int TrailingStop=0。
外来的int StopLoss=0。
外来的double lots=0.1。
外部双倍gamma = 0.7。
外部int Price_Type=0;
//---- 缓冲区
双层过滤器[]。
双层L0[]。
double L1[];;
双层L2[]。
双L3[]。

//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(5)。
//---- 指标
SetIndexStyle(0, DRAW_LINE);
SetIndexDrawBegin(0, 1)。
SetIndexLabel(0, "LaguerreFilter")。
SetIndexBuffer(0, Filter)。
SetIndexBuffer(1, L0)。
SetIndexBuffer(2, L1)。
SetIndexBuffer(3, L2)。
SetIndexBuffer(4, L3)。
//----
string short_name="LaguerreFilter(" + DoubleToStr(gamma, 2) + ")"。
IndicatorShortName(short_name)。
return(0);
}

//+------------------------------------------------------------------+
//|Custor指示器去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}

//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
int限制。
int counted_bars = IndicatorCounted()。
双CU,CD。
//----,最后计数的条形图将被重新计算。
如果(counted_bars>0)
counted_bars--。
否则
counted_bars = 1。
极限=Bars - counted_bars。
//---- RSI的计算方法
for (int i=limit; i>=0; i--)
{
double Price=iMA(NULL,0,1,0,0,Price_Type,i)。

L0[i] = (1.0 - gamma)*Price + gamma*L0[i+1]。
L1[i] = -gamma*L0[i] + L0[i+1] + gamma*L1[i+1] 。
L2[i] = -gamma*L1[i] + L1[i+1] + gamma*L2[i+1]。
L3[i] = -gamma*L2[i] + L2[i+1] + gamma*L3[i+1]。

CU = 0。
CD=0。
如果(L0[i]>= L1[i])
CU = L0[i] - L1[i]。
否则
CD = L1[i] - L0[i]。
如果(L1[i]>= L2[i])。
CU = CU + L1[i] - L2[i]。
否则
CD = CD + L2[i] - L1[i]。
如果(L2[i]>= L3[i])
CU = CU + L2[i] - L3[i]。
否则
CD = CD + L3[i] - L2[i]。

如果(CU + CD != 0)
过滤器[i] = (L0[i] + 2 * L1[i] + 2 * L2[i] + L3[i]) / 6.0。
}
return(0);

//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
如果(OrdersTotal()>0)
{
CU = 0。
CD=0。
{
OrderSelect(SELECT_BY_POS)。
如果(OrderSymbol()==Symbol())
{
如果(OrderType()== OP_BUY)
{
如果((L0[i] >= L1[i])CU = L0[i] - L1[i], (L1[i] >= L2[i])CU = CU + L1[i] - L2[i], (L2[i] >= L3[i] )
OrderClose(OrderTicket(),OrderLots())。
否则CU++。
}
如果(OrderType()== OP_SELL)
{
如果(CD = L1[i] - L0[i],CD = CD + L2[i] - L1[i],CD = CD + L3[i] - L2[i])
OrderClose(OrderTicket(),OrderLots())
否则CD++。
}
}
}

如果(CU > CD && CU == 0)
{
OrderSend(Symbol(),OP_BUY,lot,Ask,0/*(Ask-StopLoss*Point)*/,0,)。
}
如果(CU < CD && CD ==0)
{
OrderSend(Symbol(),OP_SELL,lot,Bid,0/*(Bid+StopLoss*Point)*/,0,)。
}



//----
return(0);
}
//+------------------------------------------------------------------+