//+------------------------------------------------------------------+//| SOVETNIK_01.mq5 |//| Tokarev Sergey |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Tokarev Sergey"#property link"https://www.mql5.com"#property version"1.00"//Мои подключаемые библиотеки#include<Trade\Trade.mqh> //Библиотека для структуры "CTrade", она отвечает за выполнение всех торговых операций#include <Trade\PositionInfo.mqh> //Библиотека для структуры "CPositionInfo" она выдаёт информацию по всем нашим позициям//переменные для подключаемых классов и структур опишем тут
CTrade Trade; //Значение структуры "CTrade" поместим в переменную Trade
CPositionInfo PositionInfo; //Значение структуры "CPositionInfo" поместим в переменную PositionInfoMqlTick last_tick; //В переменной last_tick будут храниться цены последнего пришедшего тика, для этого используем структуру "MqlTick"MqlTradeRequest request;
MqlTradeResult result;
//глобальные переменныеdouble SL; //Переменная необходимая для преобразования размера StopLoss в зависимости от типа брокераdouble TP; //Переменная необходимая для преобразования размера TakeProfit в зависимости от типа брокераdouble Ask; //Переменная в которой будем хранить значения цены спросаdouble Bid; //Переменная в которой будем хранить значение цены предложенияint MagicNumber=123456; //Зададим MagicNumber для идентификации своих ордеровint N; //В переменную N мы занесём кол-во открытых позиций int Lot; //Укажем размер нашего лота//+------------------------------------------------------------------+//| Инструкции которые срабатывают один раз при запуске эксперта |//+------------------------------------------------------------------+intOnInit()
{
Trade.SetExpertMagicNumber(MagicNumber); //Занесём наш номер в переменную Trade
Lot=1; //Установим размер нашего лотаreturn(0);
}
//+------------------------------------------------------------------+//| Инструкции которые срабатывают один раз при остановке (закрытии) эксперта |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
}
//+------------------------------------------------------------------+//| Инструкции которые срабатывают при каждом новом тике цен |//+------------------------------------------------------------------+voidOnTick()
{
SymbolInfoTick(_Symbol,last_tick); //Заполняем переменную last_tick последними ценами текущего символа, для этого используем "SymbolInfoTick"//Обновляем переменные Ask и Bid для дальнейшего использования
Ask=last_tick.ask;
Bid=last_tick.bid;
Print("Цена ПРОДАЖИ = ",Ask);
Print("Цена ПОКУПКИ = ",Bid);
//Определим существует ли открытая позиция или нет
N=PositionsTotal();
Print("Кол-во открытых позиций: ",N);
if(N==0)
{
//Если позиции нет то определим какая сделка была крайнейHistorySelect(0,TimeCurrent()); //Загружаем историю наших сделокulong last_deal_ticket; //Объявим переменную для тикета последней сделкиulong deals=HistoryOrdersTotal(); //Обяъвим переменную "deals" куда выгрузим количество наших сделок в целом из истории
last_deal_ticket=HistoryDealGetTicket((int)deals-1); //получим тикет крайней сделкиPrint("Ticket крайней сделки: ",last_deal_ticket);
long deal_type=HistoryDealGetInteger(last_deal_ticket,DEAL_TYPE); //Тут получить должны тип крайней сделки из историиPrint ("Тип крайней ",deal_type);
//Если была на продажу то покупаемif (deal_type==BUY)
{
//Открываем наш ордер на покупку
Trade.Buy(Lot,Symbol(),Ask,SL,TP);
Print("Мы купили по цене: ",Ask);
}
大家好。
我不久前开始研究MQL5编程。 我研究了文档并在YouTube上观看了一些网络研讨会。我设法做了一些卑微的步骤:)我已经研究了三天了 :( 我想向专业人士寻求一些帮助。
一般的概念如下:首先,我们得到Ask和Bid价格(为此我使用了MqlTick和SymbolInfoTick),然后我们看是否有未结交易(为此我使用了PositionsTotal),如果没有未结头寸,我们根据一定的条件在Ack或Bid价格开仓。也就是说,如果我们之前有一笔买入的交易,而且结果是积极的(我们低价买入,高价收盘),我们会开一个新的头寸买入...这是在一般情况下 :)问题是,我无法获得关于最后一笔交易的类型的信息,因此也无法获得以什么价格开盘和以什么价格收盘的信息 ...
以下是我写的代码。
提前感谢您的帮助 :)
我很早就远离了纸质书籍,也远离了电子形式的盗版书籍。我已经习惯了。
你不可能活得很美。
有新人问我要读什么书,我不记得我有什么书。
大家好!
我需要从EA窗口的输入字段中获取用户从下拉列表中选择的时间框架。如何把它粘贴到函数中,我连续两天都在纠结这个问题,请告诉我)!
代码。
输入enum timeFrame {
小时_1=60。
小时_4=240。
Day_1 = 1440。
Week_1 = 10080!
};
iADX(currencySelect, THIS IS HOW TO INSTALL SELECTED DATA!, ADXparam,PRICE_CLOSE, MODE_MINUSDI,2)
谢谢你!
在论坛中正确插入代码
这里有一个示例脚本,应用了你的枚举法。
在论坛中正确插入代码
这里有一个示例脚本,使用你的清单。
谢谢你!
还有,请告诉我,在MQ4中是否有一种类似于带文本键的关联数组的结构,例如:Array["Here is the key!"]?
谢谢你!
另外,请告诉我MQ4是否有类似于带文本键的关联数组的结构,例如:Array["Here is the key!"]?
在你的例子中,键是数字,而我的意思是用字符串作为键。
你好!
你能告诉我如何在MQL EA代码中获得关于开仓和平仓的信息吗(什么价格被打开,什么是TP和SL)? 至少在过去的1年中。
是否有任何内置函数或库可以返回一个包含移动平均线(最好是加权的或指数的)最后值的数组?
你好!
你能告诉我如何在MQL EA代码中获得关于开仓和平仓的信息吗(什么价格被打开,什么是TP和SL)? 至少在过去的1年中。
是否有任何内置函数或库可以返回一个包含移动平均线(最好是加权的或指数的)最后值的数组?