AutoGraf 系列 4 - MQL 功能。 - 页 32

 
Integer писал(а)>>
什么剧本?

找到了,看了一眼。这里的每个人都必须按照 "不要站在箭下 "的原则行事,作者的自信心让你瞠目结舌,无从下手。

 
ForexTools >> :
我删除了我所有与AG讨论无关的帖子。我呼吁其他 "自由骑手 "也这样做--让我们尊重他人的工作:(版主)打扫的地方不干净,但(用户)不乱扔垃圾的地方却很干净;)。

感谢sabluk 对我的 "倡议 "的理解和支持。也许其他人会以我们为榜样?

 

AG系列4的新版本 -AutoGraf 4.90207 已经发布。

已经进行了修改。
1.增加了静音蜱的选项。
2.修正了管理17号和20号工具的错误(当AG或AT模式被禁用时,当工具的市场价格达到执行价格时,该工具没有被删除;现在它被自动删除)。
在这里下载新版本http://autograf.dp.ua/Pages/4/421.htm。

 

AutoGraf 4在第5个标志的创新中站稳了脚跟。(http://forum.alpari-idc.ru/thread44876.html)


它只是像以前那样工作。不需要任何修改(这是因为它写得很正确--程序不使用变量值,以数字定义--一切都建立在变量上,随着服务器上的变化而更新,特别是点、数字、停止水平等)。)

必须在专家顾问设置中进行的自然改变涉及价格参数的预设值。例如,SL(止损点)=25,现在必须设置为250或用户自行决定的任何数值,但不能低于100(即不能低于StopLevel的当前值)。以同样的方式处理其他参数。

在参数设置之后(在专家设置窗口),建议保存(那里)设置。此外,建议创建一个新的模板:按钮Templates - Save as。

===

电影人曾经拍摄过一座老房子被炸毁的情景。
他们把炸药放在...轰!轰!轰!轰这座房子矗立着。他们种植了更多。轰隆隆!底楼倒塌了。整个上部(4层)没有倒塌,房子只是下陷了1层。最后在第5次尝试时成功地炸毁了。

建筑公司花了很多钱买了这段录像,并通过播放影片宣传他们的工作质量:)

 

女士们,先生们!

请回答这个问题。

应用程序如何区分AT功能是在向它发出指令(如提及终端)而不是在交易自己?

Исполнение функции АТ связано с двумя основными возможностями.

第一个是AT功能可以自己交易--它形成交易订单并将其发送到服务器。在这种情况下,该函数不能处理从应用程序收到的任何数据(或处理其中的一些数据),但它可以使用MQL4 语言的所有功能进行自己的计算,包括寻址终端处理订单,获取当前报价,计算交易标准,管理图形对象等。

第二个特点是与AutoGraf 4应用程序直接相连。这个功能可以指示AutoGraf 4应用程序在特定的订单或价格图表上安装任何必要的预设工具,改变应用程序的一般设置,删除工具,向用户显示信息等(输出参数)。(输出参数)。

 

女士们,先生们!

请回答一个问题。

在上述 "例子2 "中的自定义自动交易功能的例子中。打开和关闭市场订单。"市场订单被打开,但我认为待定订单被关闭。

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
// AG_AT.mq4                                             Пример 0 (инструментов нет)
// Пользовательская функция Автоматической Торговли.
// Используется при построении функции автоматической торговли для приложения AutoGraf 4
// Сергей Ковалёв, Днепропетровск, sk@autograf.dp.ua, ICQ 64015987, http://autograf.dp.ua
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 0 жж
#property library   
 
#import "AG_Lib.ex4"
   int AG_Magic_Number();                          // Вычисление MN 
   int AG_Message(string& Message[], string _Text);// Запись сообщений в массив Message[]
#import "AG_Trade_Criterion.ex4"
   int AG_Trade_Criterion_1();                     // Ф-ия определен. торгов. критериев 1
   int AG_Trade_Criterion_2();                     // Ф-ия определен. торгов. критериев 2
#import
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 1 жж
.......
//================================================================================== 7 ==
/*
                                       // Cнять блок комментариев с Примера 2
                                       // и закомментировать Пример 1
                                       // Пример 2. Открытие и закрытие рыночных ордеров.
   int Crit = AG_Trade_Criterion_2();  // Вызов функции вычисления торговых критериев
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   if (OrdersTotal()==0)               // Если нет ордеров, то интересуемся ..
      {                                // .. критериями открытия
      switch(Crit)                     // В этом блоке рассматриваются критерии открытия
         { 
         case 10:                      // Торговый критерий = Открыть_Buy
            MN = AG_Magic_Number();    // Вычисление MagicNumber (рекомендуется)
                                       // Открытие ордера Buy:
            OrderSend(Symbol(),OP_BUY, 0.1,Ask,2,Bid-100*Point,Bid+40*Point,Comm,MN); 
            break;
         case 20:                      // Торговый критерий = Открыть_Sell
            MN = AG_Magic_Number();    // Вычисление MagicNumber (рекомендуется)
                                       // Открытие ордера Sell:
            OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+100*Point,Ask-40*Point,Comm,MN);
         }
      }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   if (OrdersTotal()==1)               // По стратегии возможен только 1 рыночный ордер
      {
      switch(Crit)                     // В этом блоке рассматриваются критерии закрытия
         {
         case 11:                      // Торговый критерий = Закрыть_Buy
            if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
               {                                      
               int _Ord_Ticket = NormalizeDouble(Order[1][4],0);  // Номер ордера
               double _Ord_Lots = NormalizeDouble(Order[1][5],2); // Полное закрытие
               OrderClose(_Ord_Ticket, _Ord_Lots, Bid, 2);        // Закрыть ордер Buy
               }
            break;
         case 21:                      // Торговый критерий = Закрыть_Sell
            if (NormalizeDouble(Order[1][6],0) == 1.0)      // Если тип ордера Sell
               {
               _Ord_Ticket = NormalizeDouble(Order[1][4],0);// Номер ордера
               _Ord_Lots = NormalizeDouble(Order[1][5],2);  // Будем закр.ордер полностью
               OrderClose(_Ord_Ticket, _Ord_Lots, Ask, 2);  // Закрыть ордер Sell
               }
         }
      }
*/
//================================================================================== 8 ==
   return(1);
   }
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж Конец модуля жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 10 жж
if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][6],0) == 1.0)            // Если тип ордера Sell 

或者,也许我误解了什么?

Общее количество ордеров в приложении AutoGraf 4 не должно превышать 30. Нумерация ордеров в приложении AutoGraf 4 начинается с 1. Нулевой индекс в первом измерении массива Order[][] для учёта параметров ордеров не используется. Поэтому массив Order[][] в первом измерении имеет размерность 31. Каждая строка в массиве соответствует одному ордеру и содержит значения следующих параметров ордеров:

[0][0] - 订单总数。

[][0] - 未使用。

[1][1] - OpenPrice - 订单的开仓(设置)价格(绝对价格值)。

[][2] - 订单的止损(绝对价格值)。

[][3] - TakeProfit订单(绝对价格值)。

[][4] - 订单的NumberOrders号码。

[][5] - 订单的手数。

[][6] - 订单类型(0=B,1=S,2=BL,3=SL,4=BS,5=SS,Trades)。

[][7] - MagicNumber - 订单的魔法号码。

[][8] - 0/1评论事实。

[][9] -PrOld- 订单开仓的初始价格(绝对价格值)。


来自手册。

OrderSend() 函数的操作类型。它可以是以下任何一个值。

恒定 价值 描述
OP_BUY0购买
销量1出售
OP_BUYLIMIT2买入上限挂单
OP_SELLLIMIT3悬而未决的卖出限价单
OP_BUYSTOP4悬而未决的买入止损单
OP_SELLSTOP5悬而未决的卖出止损单

即应该是。

if (NormalizeDouble(Order[1][0],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][1],0) == 1.0)            // Если тип ордера Sell 
 

女士们,先生们!

请回答我的问题。

为什么在EA属性中不记得我的策略名称 "L_1"?


在安装AG_exp时,我写下了它,它显示在行中,但在属性中却没有被记住?

 

女士们,先生们!

请回答一个问题。

当终止一个应用程序或卸载它之后,如何删除应用程序不支持的图形对象。例如像OBJ_ARROW?

 
LeonidSB писал(а)>>

即,应该是这样。

if (NormalizeDouble(Order[1][0],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][1],0) == 1.0)            // Если тип ордера Sell 

不,不对。再看一下表格(订单集的例子),http://autograf.dp.ua/Pages/2/26/267/2674.htm

本页还描述了数组索引如何与数组中包含的参数相对应。请注意,我们在这里讨论的是第二个数组维度Order[][]中的索引。

[0][0] - 订单总数。

[][0] - 未使用。

[][1] - OpenPrice - 订单开启(设置)的价格(绝对价格值)。

[][2] - 订单的止损(绝对价格值)。

[][3] - TakeProfit订单(绝对价格值)。

[][4] - 订单的NumberOrders号码。

[][5] - 订单的手数。

[][6] - 订单类型(0=B,1=S,2=BL,3=SL,4=BS,5=SS,Trades)。

[][7] - MagicNumber - 订单的神奇数字。

[][8] - 0/1评论事实。

[][9] -PrOld- 订单开仓的初始价格(绝对价格值)。

---------------

参数 "订单类型 "对应于数组Order[][]第二维中的第6个索引。

if (NormalizeDouble(Order[1][6],0) == 0.0)            // Если тип ордера Buy
и
if (NormalizeDouble(Order[1][6],0) == 1.0)            // Если тип ордера Sell 
 
LeonidSB писал(а)>>

女士们,先生们!

请回答我的问题。

为什么在EA属性中不记得我的策略名称 "L_1"?

在安装AG_exp时,我写下了它,它显示在行中,但在属性中却没有被记住?

如果你做的一切都正确,应该会被记住。

而且它将被记住,直到你从窗口卸载专家顾问。

你可以做两件事中的一件,如果你不想在下次重新输入。

1.保存你设置的专家顾问的模板。从一个新的模板开始新的加载。

2.保存专家顾问的设置(Preferences窗口中的保存按钮),并在下次加载专家顾问时加载设置(Preferences窗口中的加载按钮)。

你可以在这里找到策略的附着顺序:http://autograf.dp.ua/Pages/2/26/267/26711/26711_2.htm。

LeonidSB 写道:>>

亲爱的!

请回答这个问题。

当终止一个应用程序或卸载它之后,如何删除应用程序不支持的图形对象。像OBJ_ARROW?

选择该对象并将其删除(按Delete)。
如果以编程方式,你可以使用ObjectsDelete()或ObjectsDeleteAll()。