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

 
Arseniy Barudkin:   先生们好,请帮我写这个函数。

胜利日快乐!!。已 经4天了--没有回复。让我们来试试...不满意的人亲自来信!!。

//+-------------------------------------------------------+
//| функция перебрала открытые ордера на графике          |
//| и выделила: 1) с самым маленьким лотом и --- профитом |
//| 2) с самым большим лотом и +++ профитом.       скрипт |
//| Предполагается, что такие есть. И удалила    PROBA.mq4|
//+-------------------------------------------------------+
// Назначение функций OrdersTotal, OrderSelect, OrderClose
// и прочих узнаем поставив на них курсор и нажав F1

#property strict

void OnStart()
{
   int    Проскальзывание=20;
   int    Тикет1 =0,  Тикет2=0;
   double Лот1=100000, Лот2=0;
   bool   Результат;     //  Чтоб избежать лишних предупреждений

   // Выделение
   for(int Тикет=OrdersTotal()-1; Тикет>=0; Тикет--)
   {
     if(!OrderSelect(Тикет,SELECT_BY_POS)) continue; // Что-то помешало - идем к следующему
     if(OrderSymbol() != _Symbol) continue;          // Чужой график

     // Если с меньшим лотом и   --- профитом   то запомним тикет и лот
     if(OrderLots()<Лот1     &&  OrderProfit()<0)
     {
       Тикет1=OrderTicket();
       Лот1=OrderLots();
     }

     // Если с большим лотом и   +++ профитом   то запомним тикет и лот
     if(OrderLots()>Лот2     &&  OrderProfit()>0)
     {
       Тикет2=OrderTicket();
       Лот2=OrderLots();
     }
   }

   // Удаление
   if(Тикет1)
   {
      while(!RefreshRates());
      if(OrderSelect(Тикет1,SELECT_BY_TICKET))  // Чтоб получить цену закрытия
         Результат=OrderClose(Тикет1, Лот1,OrderClosePrice(),Проскальзывание);
   }

   if(Тикет2)
   {
      while(!RefreshRates());
      if(OrderSelect(Тикет2,SELECT_BY_TICKET))
         Результат=OrderClose(Тикет2, Лот2,OrderClosePrice(),Проскальзывание);
   }
}   

然后问题出现了:如果只有两个命令。一个是负利润的大手,一个是正利润的小手

如果只有一个订单怎么办。如果所有的订单都有相同的手数,而且都是负利润,我们应该逐一关闭吗?

 

你好!

我能得到一些帮助吗?专家顾问正在检索每一个刻度的 交易。我如何写代码来带走大约5个交易或只带走我想要的数量?

外来的int tp=50。

extern int sl=200。

外来的双倍lot=0.01。

空白的OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point, "Batsasho",1,0,Red);

}

我应该对代码进行什么修改、添加?

你能回答***吗?

谢谢你!

 
alstefanov:

你好!

我能得到一些帮助吗?专家顾问正在检索每一个刻度的 交易。我如何写代码来带走大约5个交易或只带走我想要的数量?

外来的int tp=50。

extern int sl=200。

外来的双倍lot=0.01。

空白的OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point, "Batsasho",1,0,Red);

}

我应该对代码进行什么修改、添加?

你能回答***吗?

谢谢你!

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

void OnTick()

{ 

if(OrdersTotal()==0)OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point,"Batsasho",1,0,Red);

}
 
请告知如何加快EA在测试器中的工作速度,以便更快地进行测试,该EA只使用一个指标。
 
missha32 如何使我的EA在策略测试中更快,它只使用一个指标

首先,缩短测试时间间隔。最佳:1)过去三个月。2)三个月,中间有一个脱欧。确保不对所有蜱虫进行测试。事实上,在MT4中,历史上没有刻度线,它们是由价格的上下轻度抽动来模拟的。如果你在两个时间段--M15和M1上进行测试,那么看看,哪里更好。或者,更好的办法是使用演示--周一早上启动,周五晚上使用众所周知的脚本检查结果。如果我们需要测试100个专家顾问,我们打开10个终端,每个终端有10个带有专家顾问的图表。

有必要拥有大量的计算机。在一个真实的账户 上,4美元和500的杠杆已经足够了。看看任何图表--只要有正确的输入,你就能在一天内轻松地将你的存款翻倍。而这是一个月内的一百万次。互联网上有这种免费的EA吗?有人会卖这样的东西吗?因此,这些钱应该投资于计算机。我们正在寻找进入点。我们编写程序,在Excel中使用公式和宏进行计算,并编写脚本和专家顾问进行计算。然后,当我们弄清楚如何找到进入点,然后是机器人、止损、拖网、入金、存款、取款......。

 
STARIJ:

胜利日快乐!已 经4天了--没有回复。让我们来试试...不满意的人在他们的个人账户中写道!!!

然后问题出现了:如果只有两个命令。用大批量的负利润,用小批量的正利润

如果只有一个订单怎么办。如果所有的订单都有相同的手数,而且都是负利润,我们应该一个一个地关闭吗?

for(int Ticket=OrdersTotal()-1; Ticket>=0; Ticket--) - 这是市场订单的代码,按票据逆向搜索(从最后一个订单打开到第一个订单)-- 我理解得对吗?

"Ticket "在西里尔语中不起作用,必须是拉丁语的 "Ticket"。

 
Yaroslav Nykula:
for(int Ticket=OrdersTotal()-1; Ticket>=0; Ticket--) - 这是按票面逆向搜索的市场订单代码(从最后一个开盘到第一个开盘)-- 我理解得对吗?

西里尔文的 "Ticket "不能用,你需要拉丁文的 "Ticket"。

没有检查,但它不仅在西里尔语中应该通过,而且在汉语中也应该通过。
 
Vitaly Muzichenko:   我没有检查过,但它不仅在西里尔语中应该通过,在汉语中也应该通过。
当我学习一种新的语言时,首先我会检查西里尔语是吃了西里尔语,还是把它吐出来。这个人确实如此。这就是那个剧本--看看吧。
附加的文件:
PROBA.mq4  2 kb
 
你好。问题是:我们能否将某个交易时段(即一个蜡烛)的ticks值(对应的价格)加载到一个一维数组中?而且要以这样的方式进行,即在形成蜡烛的过程中形成阵列。在MQL4中,这是否现实?我将感谢您的反馈。
 
STARIJ:

胜利日快乐!!。已 经四天了--没有答复。让我们来试试...不满意的人在私下里写!!!。

然后就出现了一个问题:如果只有两个命令。用大批量的负利润,用小批量的正利润

而如果只有一个订单。如果所有的订单都有相同的手数,而且都是负利润,我们是否应该一个一个地关闭?


非常感谢您!这是一个很好的功能!如果没有足够的保证金来开立另一个订单,就应该调用这个函数。但我没有正确地表达我的想法;事实证明,我需要的是别的东西。最大的手数,有最大的开仓 利润,最小的手数,有负的开仓利润。
原因: