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

 
forexnew:
我从未与DLL合作过。你不会刚好有一个现成的代码吧?


虽然,没有什么特别困难的事情,只是简单地将一个文件替换成另一个文件。

为了制作DLL,你需要用MQL4以外的语言编程。有些人用C/C++编写。我是用Delphi写的。总而言之,这取决于你自己的需求。

当DLL准备好后,它被连接到专家顾问以及MQL4的另一个库。之后,你可以调用DLL中描述的功能。

 
drknn:


我没有做过这种功能,尽管如果你看一下,那里没有什么特别复杂的东西--只是用一个文件替换另一个文件的蠢事。

你可以在文件系统中建立链接,从脚本中读取日志。
 

亲爱的,伊戈尔-金是否有一个函数可以返回最后一次 开仓 的开仓价格https://forum.mql4.com/ru/38949/page5#434239。

如果不难,请写一个函数,返回第一个 开仓的开仓价。我以为这在行内是足够的

t<OrderOpenTime()
要用">"替换"<",但结果是不可行的。
 

你好。

如果可能的话,请告知如何实现这一功能。

订单1和TP相应设置。一个挂单 2与该订单同时下达。当订单1的TP被触发时,如何删除挂单。

 
strongest:

你好。

如果可能的话,请告知如何实现这一功能。

订单1和TP相应设置。一个挂单2与该订单同时下达。当订单1的TP被触发时,如何删除挂单。


通过调用OrderDelete() 交易函数
 
要使尾随止损在五位数 中发挥作用,需要做哪些改变?将点数增加10倍也无济于事。
//+------------------------------------------------------------------+
//|                                                   e-Trailing.mq4 |
//|                                           Ким Игорь В. aka KimIV |
//|                                              http://www.kimiv.ru |
//|                                                                  |
//| 12.09.2005 Автоматический Trailing Stop всех открытых позиций    |
//|            Вешать только на один график                          |
//| 21.01.2006 Параметр AllPositions                                 |
//+------------------------------------------------------------------+
#property copyright "Ким Игорь В. aka KimIV"
#property link      "http://www.kimiv.ru"

//------- Внешние параметры ------------------------------------------
extern bool   AllPositions   = False; // Управлять всеми позициями
extern bool   ProfitTrailing = True;  // Тралить только профит
extern int    TrailingStop   = 15;    // Фиксированный размер трала
extern int    TrailingStep   = 2;     // Шаг трала
extern bool   UseSound       = True;  // Использовать звуковой сигнал
extern string NameFileSound  = "expert.wav";  // Наименование звукового файла

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start() {
  for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (AllPositions || OrderSymbol()==Symbol()) {
        TrailingPositions();
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Сопровождение позиции простым тралом                             |
//+------------------------------------------------------------------+
void TrailingPositions() {
  double pBid, pAsk, pp;

  pp = MarketInfo(OrderSymbol(), MODE_POINT);
  if (OrderType()==OP_BUY) {
    pBid = MarketInfo(OrderSymbol(), MODE_BID);
    if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp) {
      if (OrderStopLoss()<pBid-(TrailingStop+TrailingStep-1)*pp) {
        ModifyStopLoss(pBid-TrailingStop*pp);
        return;
      }
    }
  }
  if (OrderType()==OP_SELL) {
    pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
    if (!ProfitTrailing || OrderOpenPrice()-pAsk>TrailingStop*pp) {
      if (OrderStopLoss()>pAsk+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0) {
        ModifyStopLoss(pAsk+TrailingStop*pp);
        return;
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Перенос уровня StopLoss                                          |
//| Параметры:                                                       |
//|   ldStopLoss - уровень StopLoss                                  |
//+------------------------------------------------------------------+
void ModifyStopLoss(double ldStopLoss) {
  bool fm;

  fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
  if (fm && UseSound) PlaySound(NameFileSound);
}
//+------------------------------------------------------------------+
 
david2:
要使尾随止损在五位数中发挥作用,需要做哪些改变?增加10倍也无济于事。

最有可能的问题是非正常化的价格。
 
PapaYozh:

问题可能是非正常化的价格。
对不起,除了终端按钮,你还应该在EA窗口中按下额外的确认,让EA进行交易
 
Sancho77:

亲爱的,伊戈尔-金是否有一个函数可以返回最后一次 开仓的开仓价格https://forum.mql4.com/ru/38949/page5#434239。

如果不难,请写一个函数,返回第一个 开仓的开仓价。我以为这在行内是足够的

用">"替换"<",但结果却不成功。

而且要说明的是?是从开放的(市场中的)还是已经关闭的中选择第一个?如果第一个职位是三年前开设的呢? 要被选中吗?

这一切到底是为了什么?

 

同志们好!

你能告诉我是否可以确定之前的订单是否在获利时被关闭?如果是,我应该如何以编程方式实现它?

如果这个问题已经被讨论过,我希望能有一个链接