[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 593

 
chief2000:

在测试和优化时,我们最常使用的是一种货币对,获得可接受的利润,以及一个缩减。然后我们对其他货币进行重复。但最终,专家顾问将不得不从一个交易账户中 交易我们感兴趣的所有货币他们说,预期的 "总 "缩水可以比每种货币单独获得的缩水更好(我在某个地方看到过几次这种观点)。但如果几个专家顾问同时进入亏损状态,情况就会更糟。

我对交易者在这方面的经验也很感兴趣。 我想提供Seaboss的一个非常有趣的视频片段

http://taverno.livejournal.com/2010/04/10/ Seaboss中的总股本管理是为Omega实现的,是否有类似的MT的实现方式?

 
晚上好,亲爱的论坛成员!我下午联系了,没有人回应--我需要一个能在终端窗口显示垂直小时线的指标,肯定有现成的,请告知在哪里可以得到?
 
root:
晚上好,亲爱的论坛成员!我在白天联系了他们,但没有人作出反应--我需要一个在终端窗口显示垂直小时线的指标,肯定有现成的,你能告诉我在哪里可以得到它?

我不知道从哪里得到它。 可能我没有听到任何答复的原因是,写这样一个指标是一件简单的事情,可能没有人会需要它。
 

vik-777:

帮助我解决这个问题

对所有关闭的职位进行抽样调查

for (int i=0; i<OrdersHistoryTotal(); i++)
如果(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)

事后按神奇数字过滤

如果(OrderMagicNumber()==12)

过滤器匹配3个位置,但我只需要最后一个位置被一个神奇的数字封闭。

我不知道如何只留下最后一个?

谢谢你

谁能帮帮我,没有人面对过
 
vik-777:
谁能帮帮我,难道没有人遇到过这种情况吗?

OrderCloseTime()来帮助你
 
Figar0:

OrderCloseTime()来帮助你
我可以用它来寻找最后关闭的订单,我需要最后关闭的订单与一个魔术师,告诉我如何使用OrderCloseTime()比较多个订单?
 
vik-777:
所以呢,我可以找到最后关闭的订单,我需要最后关闭的订单,有一个魔术师,告诉我如何通过OrderCloseTime()对多个订单进行比较?

int LastClose =0;
int LastTicket;
for (int i=0; i<OrdersHistoryTotal(); i++)
{
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)
  {
    if (OrderMagicNumber()==12)
    {
      if (OrderCloseTime()>LastClose)
      {
        LastClose=OrderCloseTime();
        LastTicket=OrderTicket();
      }
    }
  }
}

if (LastClose>0)
{
  if(OrderSelect(LastTicket, SELECT_BY_TICKET, MODE_HISTORY)==true)
  {
  //// Тра-та-та
  }
}
它太粗暴和直接了。它可以更漂亮,更简洁...
 
Figar0:

根深蒂固,在前额。它可以更漂亮,更简洁...
非常感谢你,非常感谢。
 
Craft:

我对交易者在这方面的经验也很感兴趣。 我想推荐Seaboss的一个非常有趣的视频片段

http://taverno.livejournal.com/2010/04/10/ Seaboss已经为Omega实现了股权管理,是否有类似的MT的实现?

这是我发现的一些东西(还没有读,但似乎是在讨论这个问题)。

https://www.mql5.com/ru/forum/125825

 

Vopshchem我采用了概率理论,从统计学上看,如果订单的保证金将在距离价格50点的范围内,那么在开盘时,10点的利润更容易达到 - 如果也有10点的止损(甚至点差也不是问题),趋势的运动是一个伟大的事情...

添加一个止损,不考虑StepStop

//+------------------------------------------------------------------+
//| Volfram.mq4 | |
//| Vova-x@list.ru |
//| |
//+------------------------------------------------------------------+
#财产版权"Vova-x@list.ru"
#属性链接""
//-----------------------------------------
外部TakeProfit=10。
外部int StepStop=45;
外来的双倍Lots=0.01。
外部 bool MoneyManagement=true。
外部inttern MarginPercent=10。
//-------------------------------------------
int level_sell_stop;
int level_buy_stop;

//----------------------------------------------------------
空白的init()
{
// int minstop=MarketInfo(Symbol(),MODE_STOPLEVEL)。
//打印("levelbuy_stop: "+minstop;)
}
//-----------------------------------------------------------
空白启动()。
{
if (!IsTradeAllowed()) return;
level_buy_stop=0。
level_sell_stop=0。
StepingStop()。
StepingPendings()。
如果(TotalBuy ()==0 && TotalBuyStop ()==0) SetBuyStop ()。
如果(TotalSell()==0 && TotalSellStop()==0) SetSellStop()。
Comment("Level Buy Stop=",level_buy_stop*Point,
"n", "Level Sell Stop=",level_sell_stop*Point)。
}
//---------------------------------------------------------------------------------------------
空白的StepingStop()
{
如果(StepStop<1)返回。
int ask, bid, open, stop, x;
双重损失。
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
如果(OrderSymbol()!=Symbol())
如果(OrderType()==OP_BUY)
{
bid=MathRound(Bid/Point)。
open=MathRound(OrderOpenPrice()/Point)。
stop=MathRound(OrderStopLoss()/Point)。
x=(bid-open)/StepStop; x--; x*=StepStop。
level_sell_stop=open+x;
如果(stop>=open+x)
loss=(open+x)*Point;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE) 。
}
如果(OrderType()==OP_SELL)
{
ask=MathRound(Ask/Point)。
open=MathRound(OrderOpenPrice()/Point)。
stop=MathRound(OrderStopLoss()/Point)。
x=(open-ask)/StepStop; x--; x*=StepStop。
level_buy_stop=open-x;
如果(stop>0 && stop<=open-x)
损失=(开-x)*点。
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE) 。
}
}
}
//----------------------------------------------------------------------------
空白的StepingPendings()。
{
在 "卖出"、"买入"、"开盘 "中。
双重价格,损失,利润。
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
如果(OrderSymbol()!=Symbol())
如果(OrderType()==OP_BUYSTOP)
{
如果(level_buy_stop==0)
open=MathRound(OrderOpenPrice()/Point)。
如果(open<=level_buy_stop)
price=level_buy_stop*Point;
损失=价格-步骤-停止*点。
profit=0; if (TakeProfit>0) profit=price+TakeProfit*Point;
OrderModify(OrderTicket(),price,loss,profit,0,CLR_NONE)。
}
如果(OrderType()==OP_SELLSTOP)
{
如果(level_sell_stop==0)
open=MathRound(OrderOpenPrice()/Point)。
如果(open>=level_sell_stop)
价格=level_sell_stop*点。
损失=价格+StepStop*Point。
profit=0; if (TakeProfit>0) profit=price-TakeProfit*Point;
OrderModify(OrderTicket(),price,loss,profit,0,CLR_NONE)。
}
}
}
//-------------------------------------------------------------------
空白的SetBuyStop()。
{
double lots=LotsCounting()。
double price=Bid+StepStop*Point;
double loss=price-StepStop*Point。
double profit=0; if (TakeProfit>0) profit=price+TakeProfit*Point;
int ticket=OrderSend(Symbol(),OP_BUYSTOP,lot,price,0,loss,profit,",0,0,CLR_NONE);
如果(ticket<1) Print("设置挂单失败,错误#",GetLastError()," ",(GetLastError())。
}

空白的SetSellStop()。
{
double lots=LotsCounting()。
double price=Ask-StepStop*Point;
double loss=price+StepStop*Point。
double profit=0; if (TakeProfit>0) profit=price-TakeProfit*Point;
int ticket=OrderSend(Symbol(),OP_SELLSTOP,lot,price,0,loss,profit,"",0,0,CLR_NONE)。
如果(ticket<1) Print("设置挂单失败,错误#",GetLastError()," ",(GetLastError())。
}


int TotalBuy()
{
int count=0。
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
如果(OrderSymbol()!=Symbol())继续。
如果(OrderType()==OP_BUY)count++。
}
返回(计数)。
}

int TotalBuyStop()
{
int count=0。
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
如果(OrderSymbol()!=Symbol())继续。
如果(OrderType()==OP_BUYSTOP) count++;
}
返回(计数)。
}

总卖出量()
{
int count=0。
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
如果(OrderSymbol()!=Symbol())继续。
如果(OrderType()==OP_SELL) count++;
}
返回(计数)。
}

总卖出量(TotalSellStop)。
{
int count=0。
for (int i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
如果(OrderSymbol()!=Symbol())继续。
如果(OrderType()==OP_SELLSTOP) count++;
}
返回(计数)。
}

double LotsCounting()
{
双层地段=地段。
如果 (MoneyManagement)
{
double lotsize=MarketInfo(Symbol(),MODE_LOTSIZE)。
double freemargin=AccountFreeMargin()。
lots=0; 如果(lotsize>0) lots=NormalizeDouble((MarginPercent*freemargin/lotsize),1)。
}
如果(lot>10) lots=NormalizeDouble(lot,0);
如果(lot<0.01)lot=0.01。
返回(地段)。
}


// 结束

原因: