[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 491

 
merkulov.artem:
晚上好!问题,如果我使用一个EA。我的经纪公司是否能够看到其工作的算法以及如何计算数值(指标、历史数据的分析),即专家顾问的整个代码?还是经纪公司只收到有关指令的信息:开仓、修改和平仓?
不,DC不能进入专家顾问的工作过程。经纪公司服务器只接收来自你的MT的指令(买入、卖出等)。
 
guys!!!!!!,我在哪里可以下载一个简单的MA顾问,用于在最新的数据上跨越2条线?他们中的大多数人都在从报价历史中提取的平均线上工作。最好是同一指标。
 
bikrus13:
guys!!!!!!,我在哪里可以下载一个简单的MA顾问,根据最新的数据跨越2条线?他们中的大多数人都在从报价历史中提取的平均线上工作。最好是同一指标。
你说的 "最近的数据 "是什么意思?最新数据是什么?不是来自历史,而是来自未来?)你说的 "最近的数据 "是什么意思?只是好奇--这是我第一次 "听说 "它。
 
kakin:
你说的 "最新数据 "是什么意思?最新的数据是什么?请说明。只是好奇--这是我第一次 "听说 "它。

例如,如果你从终端完全删除历史。当你打开一个图表时,你必须通过滚动到过去来创建你自己的历史。在这种情况下,平均分量从零开始,在历史开始的哪一天,大约是两个月。如果你在一分钟的图表中采取周期为1000的MA,有一周和一个月的历史,他们会有所不同。这就是问题所在。如果 根据最新的报价数据创建一个指标,它将显示更真实的情况
 

你能告诉我是否有可能禁止EA在演示图上的正确时刻发送打印机?也许甚至可以把它从图表中删除。我认为这个功能不会完全停止,只是到下一次打勾为止,还是会停止?BreakPoint()。

void BreakPoint(){//if (!IsVisualMode()) return(0);
keybd_event(19,0,0,0);
Sleep(10);
keybd_event(19,0,2,0);}                    
 
显然,这不会阻止它,但是否有可能在适当的时候以编程方式将机器人从图表中移除?
 
bikrus13:

例如,如果你从终端完全删除历史记录。当你打开一个图表时,你必须通过滚动时间来创建你自己的历史。平均分量从零开始,在历史开始的哪一天,大约是两个月。如果你在一分钟的图表中取一个周期为1000的MA,有一周和一个月的历史,它们会有所不同。这就是问题所在。如果你使用最新的报价数据创建一个指标,它将显示得更加真实
))))))))),我唯一的建议是在互联网上阅读关于可怕的移动平均线 和它的计算方式。要强调研究平均时期。我知道这对大脑来说非常困难,但很多问题会自己消失。
 

我目前正在学习如何在理解源代码方面编写一个EA,因为这个EA写得非常好。

但有一件事很奇怪,那就是。

void FindOrders()
{
// - 1 - == Инициализация переменных перед поиском ======================================
   int total = OrdersTotal() - 1;
   g_type = -1;                                    // На текущий момент у нас нет позиций
// - 1 - == Окончание блока =============================================================
 
// - 2 - == Непосредственно поиск =======================================================
   for (int i = total; i >= 0; i--)                // Используется весь список ордеров
      if (OrderSelect(i, SELECT_BY_POS))           // Убедимся, что ордер выбран
         if (MathFloor(OrderMagicNumber()) == i_magicNumber &&// Ордер открыт
             OrderSymbol() == Symbol())            // ..экспертом, который прикреплен к..
         {                                         // ..текущей паре
            g_ticket = OrderTicket();              // Запишем данные ордера
            g_type = OrderType();
         } 
// - 2 - == Окончание блока =============================================================
}

为什么所有订单的数量被分配给OrdersTotal()-1,而不只是OrdersTotal()

因为如果我们总共0个 订单,那么总数 的值将是-1 而不是0

 
hoz:

我目前正在学习如何在理解源代码方面编写一个EA,因为这个EA写得非常好。

但有一件事很奇怪,那就是。

为什么所有订单的数量被分配给OrdersTotal()-1,而不只是OrdersTotal()

因为如果我们总共有0个 订单,那么总数 的值将是-1 而不是0

之后,检查总数在哪里使用。最有可能的是,我们然后循环浏览订单 for (i=0; i<=total; i++) 。
 
paladin80:
看看之后总在哪里使用。最有可能的是,然后循环浏览订单 for (i=0; i<=total; i++)。

顺便说一句,是的...我已经在上面添加了这个函数的完整代码。

void FindOrders()
{
// - 1 - == Инициализация переменных перед поиском ======================================
   int total = OrdersTotal() - 1;
   g_type = -1;                                    // На текущий момент у нас нет позиций
// - 1 - == Окончание блока =============================================================
 
// - 2 - == Непосредственно поиск =======================================================
   for (int i = total; i >= 0; i--)                // Используется весь список ордеров
      if (OrderSelect(i, SELECT_BY_POS))           // Убедимся, что ордер выбран
         if (MathFloor(OrderMagicNumber()) == i_magicNumber &&// Ордер открыт
             OrderSymbol() == Symbol())            // ..экспертом, который прикреплен к..
         {                                         // ..текущей паре
            g_ticket = OrderTicket();              // Запишем данные ордера
            g_type = OrderType();
         } 
// - 2 - == Окончание блока =============================================================
}

我想不这样写会更符合逻辑。

int total = OrdersTotal() - 1;

然后像这样设置循环。

for(i=total; i>=1; i--)

对吗?只是不知何故,当位置数 的计数器从零开始时,人们对它的认识并不深刻......这不符合逻辑,因此,为什么要迷惑自己......