初学者的问题 MQL4 MT4 MetaTrader 4 - 页 139

 

我正在策略测试器中运行专家顾问。当修改BUYSTOP订单时,会产生一个错误。

我不明白为什么。我的订单提供的移动价格比Ask价格高40,StopLevel =30。价格已经正常化,还需要什么?

 
khorosh:

我正在策略测试器中运行专家顾问。当修改BUYSTOP订单时,会产生一个错误。

我不明白为什么。我的订单提供的移动价格比Ask价格高40,StopLevel =30。价格已经正常化,还需要什么?

我在一个经纪商那里看到过--与其说是10个点,不如说是11个点,试着把它设置得高一些。
 
Лауреат:
请告知如何制作一个设置所需订单数量 的函数!例如,在mql4中打开指定数量的订单,而不需要更多。
 
Konstantin Erin:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("The requirednumber of orders opened"); 如果使用这个方法,那么就会连续打开几个订单!如果有另一个交易信号,就不会有订单,所以如果在第一个打开的订单后有进一步的交易信号,如何让它打开所需数量的订单!??
 

为什么没有人帮忙,请问?

 
Лауреат:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("The requirednumber of orders opened"); 如果使用这个方法,那么将连续开出几个订单!如果有另一个信号要交易,则不是订单,所以如果在第一个开单后有进一步的信号要交易,如何使其开出所需数量的订单!??
enum Цвет   // Цвет флага
{
  Красный,
  Зеленый
};

Цвет Флаг=Красный;

void start()
{
   if(!Сигнал())Флаг=Зеленый;

   if(Сигнал()>0 && Флаг==Зеленый)
   {
      OrderSend(Покупка...);
      Флаг=Красный;
   }

   if(Сигнал()<0 && Флаг==Зеленый)
   {
      OrderSend(Продажа...);
      Флаг=Красный;
   }
}

int Сигнал()  // Сигналы покупки и продажи
{
   return ЧтоНадо;
}
这可以短至5行,但我懒得去想...
 

伙计们,请告诉我在哪里可以找到或帮助我纠正追踪止损,它是这样工作的。

例如,一个TP=100,SL=200的BUY订单被打开,当价格进入BUY并通过50点时,那么SL就变成了开盘价,而TP则被移到50点,如此不断????。

空白的尾随位置(int otype)。
{

int cnt = OrdersTotal();

int lMinProfit = 0; // 最小点数。

int lTrailingStop = 40; // 尾随位置水平(距离上一个SL距离的点数)。

int lTrailingStep = 20; // 追踪止损水平(多少点后将会触发)。

for (int i=0; i<cnt; i++)
{
如果(!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))继续。
如果(OrderSymbol() != Symbol())继续。

如果(OrderType() == OP_BUY && otype == OP_BUY){
如果(Bid-OrderOpenPrice() > lMinProfit*Point) {
如果(OrderStopLoss()< Bid-(lTrailingStop+lTrailingStep-1)*Point){
如果(OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, TP + lTrailingStop * Point, 0, Blue)
Print("跟踪止损正在工作")。
}
}
}

如果(OrderType() == OP_SELL && otype == OP_SELL) {
如果(OrderOpenPrice()-Ask > lMinProfit*Point) {
如果(OrderStopLoss() > Ask+(lTrailingStop+lTrailingStep-1)*Point || OrderStopLoss() == 0) {
如果(OrderModify(OrderTicket(), OrderOpenPrice(), Ask+lTrailingStop*Point, TP - lTrailingStop * Point, 0, Red)
Print("跟踪止损正在工作")。
}
}
}
 
LRA:
它可以缩短5行,但我懒得去想......
好主意,我得试试。谢谢你。然而,它能与onticket void OnTick()函数一起工作吗?
 
同志们好!请帮助我安装 "按钮 "对象,我需要在专家顾问中放置代码,以便直接在图表上的按钮在按下或未按下的状态下返回一个bool值。提前感谢您!
 
Arseniy Barudkin:
同志们好!请帮助设置 "按钮 "对象,我需要在EA中放置代码,以便直接在图表上使按钮在按下或未按下的状态下返回一个bool值。提前感谢您!
ObjectGetInteger(ChartId(),"имя кнопки",OBJPROP_STATE)

这里是

原因: