//--- собираем все вместеif(Sell_Condition_1 && Sell_Condition_2)
{
if(Sell_Condition_3 && Sell_Condition_4)
{
// есть ли в данный момент открытая позиция на продажу?if(Sell_opened)
{
Alert("Уже есть позиция на продажу!!!");
return; // не добавлять к открытой позиции на продажу
}
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(latest_price.bid,_Digits); // последняя цена Bid
mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = Lot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type= ORDER_TYPE_SELL; // ордер на продажу
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=100; // проскальзывание от текущей цены//--- отсылаем ордерOrderSend(mrequest,mresult);
// анализируем код возврата торгового сервераif(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed
{
Alert("Ордер Sell успешно помещен, тикет ордера #:",mresult.order,"!!");
}
else
{
Alert("Запрос на установку ордера Sell не выполнен - код ошибки:",GetLastError());
return;
}
}
}
return;
}
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5 минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
voidOnTick()
{
for(int tik =1; tik <= 6; tik++)
{
Fractal=iFractals(Symbol(),tik); // Вот эта tik переменная вызывает ошибку при компиляции
switch(tik)
{
case1:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_W1),FractalUP_W1); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_W1),FractalDown_W1); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_W1,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_W1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case2:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUP_D1); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalDown_D1); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_D1,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_D1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case3:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_H4),FractalUP_H4); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_H4),FractalDown_H4); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_H4,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_H4,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case4:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_H1),FractalUP_H1); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_H1),FractalDown_H1); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_H1,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_H1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case5:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_M30),FractalUP_30); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_M30),FractalDown_30); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_30,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_30,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case6:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_M15),FractalUP_15); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_M15),FractalDown_15); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_15,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_15,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
}
}
但我如何获得另一个货币对的这个值?
你能告诉我吗?
什么是_Digits,我明白。如何为另一个货币对获得它?请帮助我。
符号_数字
小数点后的位数
䵮䵮
MqlTradeRequest mrequest ???
也许在MQL5中有一个函数? 我想了解为什么我会得到这个消息 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) 警报:请求下卖出订单失败 - 错误代码:4756
嗨!!你能告诉我如何记录完成的结构吗?
MqlTradeRequest mrequest ???
也许在MQL5中有一个函数? 我想了解为什么我会得到这个消息 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) 警报:请求下卖出订单失败 -错误代码:4756
https://www.mql5.com/ru/forum/327894
而这里的文字记录:这里,如何以编程方式从窗口中删除警报对话框?
如果你不硬,请说明在文档中哪里写到这个星号是一个指针*。我见过一次,但我已经翻过一本教科书,找不到了((((。
你好,是否可以以及如何在不使用任何指标的情况下创建一个开仓和平仓的算法?
比如说,拿两条线,一条趋势线是向上的,第二条也是向下的,把它们放在上面,两条线之间有一个交点,我们假设它在时间上是15-30,那么如何让订单在同一时间自动开启,向任何方向启动,如何让算法会找到这些点并开仓?我希望得到澄清和你们的意见。
我们能在这样的T3基础上创建一个EA吗?,不能这样做( 奇怪,为什么质数可以用在这个参数中,而不是用数字常数的变量?
嗨!!我有个问题。 我需要把不同时间段的指标处理程序收集到数组中,但事实证明, 不能做到这一点(
很奇怪,为什么我可以在这个参数中使用质数,但不能用数字常数的变量?
因为必须要有一个时间框架
识别器
描述
PERIOD_CURRENT
本期
PERIOD_M1
1分钟
PERIOD_M2
2分钟
PERIOD_M3
3分钟
PERIOD_M4
4分钟
PERIOD_M5
5分钟
PERIOD_M6
6分钟
PERIOD_M10
10分钟
PERIOD_M12
12分钟
PERIOD_M15
15分钟
PERIOD_M20
20分钟
PERIOD_M30
30分钟
PERIOD_H1
1小时
PERIOD_H2
2小时
PERIOD_H3
3小时
PERIOD_H4
4小时
PERIOD_H6
6小时
PERIOD_H8
8小时
PERIOD_H12
12小时
PERIOD_D1
1天
PERIOD_W1
1周
PERIOD_MN1
1个月
我需要将不同时间段的指标柄收集到数组中,但事实证明, ,不能这样做(我想知道为什么在这个参数中可以使用质数,而不能使用数字常数的变量
?
在MQL5中,指标手柄必须一次性创建!!!。而且必须在OnInit()中完成!!。