Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Надеюсь, этот экран показывает именно то, что я хочу :)
Если вы используете HighLowCandle > 0, то он отсутствует на закрытой свече.
Установите параметр UseBarDirection в true и проверьте его.
Да, у меня есть это в настройках. Вот мои настройки, которые я тестировал
Возможно, в коде что-то не так. Не могли бы вы проверить внутри?
Существует ли простой способ доступа к данным индикатора MT5 для отображения на графике. Я знаю, что изначально, когда MT5 только появился, код был довольно сложным для простого индикатора, и я надеюсь, что в последней версии MT5 что-то изменилось?
Например, если я хочу показать пересечение МА на графике объекта с MT4, я использую
double slow_MA = iMA(Symbol(),0,100,0,MA_MODE,MA_PRICE,0);
double fast_MA = iMA(Symbol(),0,35,0,MA_MODE,MA_PRICE,0);
if (ma_fast > ma_slow){ col = clrLime;}
if (ma_fast < ma_slow) {col = clrRed;}
else {col = clrGray;}
Есть ли какой-нибудь простой эквивалент в MT5? Или мне придется писать бесчисленные строки кода, чтобы получить доступ к этой информации?
Привет cja
Во-первых, спасибо за ваше посещение TSD в 2017 году, затем С Новым годом вас, так как вы очень редко посещаете TSD, но очень старый, старший и экспертный член :)
с уважением
Я пытаюсь изменить эту рутину "Трейлинг с шагом".
Мне нужно двигаться от стоплосса, а не от входа в покупку/продажу...
например: (операция BUY)
StopLoss: 250 (в пунктах)
Traling :150 (в пунктах)
TralingStep: 50 (в пунктах)
===========
BUY Вход=> 1000
StopLoss=>750 (=1000-250)
================
Первое изменение цены) Цена переместилась на: 1150
(Мне это не нужно... ;-( )
Трейлинг перемещает мой стоплосс на "buy_entrance" =>1000
(Но мне это нужно)
Трейлинг должен переместить мой стоплосс на => 800 (=StopLoss+Trailingstep)
Второе изменение цены) Цена переместилась на: 1300
Трейлинг должен быть перемещен на => 950 (=StopLoss+Trailingstep).
фактический код использует трейлинг и шаг трейлинга, но мне нужно изменить его...
когда (цена переместилась) трейлинг в пунктах достигнут и он использует шаг трейлинга для перемещения стоп лосса, но фактический код
перемещает стоплосс в точку входа операции (и я не хочу этого).
Мне нужно:
при открытии BUY: если трейлинг достигнут, то шаг трейлинга должен быть вычтен из фактического стоплосса. (NewStopLoss = LastStoploss - TrailingStep)
при открытии SELL: если трейлинг достигнут, то шаг трейлинга должен быть добавлен от фактического стоплосса. (NewStopLoss = LastStoploss +TrailingStep)
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;
int Trailing = 150;
int TrailingStep = 25;
void fSimpleTrailingStep(){ //mt5
if(Trailing<=0){
return;
}
if(!Pos.Select(_Symbol)){
return;
}
if(!Sym.RefreshRates()){
return;
}
double nsl,tmsl,psl,newstop;
switch(Pos.PositionType()){
case POSITION_TYPE_BUY:
nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
//if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
if(nsl>=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep)){ //////////////
//tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
if(nsl<tmsl){
//Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
newstop=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep);
Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
Print ("(BUY) Trailing :"+Pos.StopLoss());
}
}
}
break;
case POSITION_TYPE_SELL:
nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
//if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())-_Point*TrailingStep){ //////////////
psl=Sym.NormalizePrice(Pos.StopLoss());
if(nsl<psl || psl==0){
tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
if(nsl>tmsl){
newstop=Sym.NormalizePrice(Pos.StopLoss()-_Point*TrailingStep);
//Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
Print ("(SELL) Trailing :"+Pos.StopLoss());
}
}
}
break;
}
}
Я пытаюсь изменить эту рутину "Трейлинг с шагом".
Мне нужно двигаться от стоплосса, а не от входа в покупку/продажу...
например: (операция BUY)
StopLoss: 250 (в пунктах)
Traling :150 (в пунктах)
TralingStep: 50 (в пунктах)
===========
Вход BUY=> 1000
StopLoss=>750 (=1000-250)
================
Первое изменение цены) Цена переместилась к: 1150
(Мне это не нужно... ;-( )
Трейлинг перемещает мой стоплосс на "buy_entrance" =>1000
(Но мне это нужно)
Трейлинг должен переместить мой стоплосс на => 800 (=StopLoss+Trailingstep)
Второе изменение цены) Цена переместилась на: 1300
Трейлинг должен переместить стоплосс на => 950 (=StopLoss+Trailingstep)
фактический код использует трейлинг и шаг трейлинга, но мне нужно изменить его...
когда (цена двинулась) трейлинг в пунктах достигнут и он использует шаг трейлинга для перемещения стоп-лосса, но фактический код
перемещает стоплосс в точку входа в операцию (а я этого не хочу)
Мне нужно:
при открытии BUY: если трейлинг достигнут, то шаг трейлинга должен быть вычтен из фактического стоплосса. (NewStopLoss = LastStoploss - TrailingStep)
при открытии SELL: если трейлинг достигнут, шаг трейлинга должен быть добавлен от фактического стоплосса. (NewStopLoss = LastStoploss +TrailingStep)
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;
int Trailing = 150;
int TrailingStep = 25;
void fSimpleTrailingStep(){ //mt5
if(Trailing<=0){
return;
}
if(!Pos.Select(_Symbol)){
return;
}
if(!Sym.RefreshRates()){
return;
}
double nsl,tmsl,psl,newstop;
switch(Pos.PositionType()){
case POSITION_TYPE_BUY:
nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
//if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
if(nsl>=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep)){ //////////////
//tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
if(nsl<tmsl){
//Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
newstop=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep);
Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
Print ("(BUY) Trailing :"+Pos.StopLoss());
}
}
}
break;
case POSITION_TYPE_SELL:
nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
//if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())-_Point*TrailingStep){ //////////////
psl=Sym.NormalizePrice(Pos.StopLoss());
if(nsl<psl || psl==0){
tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
if(nsl>tmsl){
newstop=Sym.NormalizePrice(Pos.StopLoss()-_Point*TrailingStep);
//Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
Print ("(SELL) Trailing :"+Pos.StopLoss());
}
}
}
break;
}
}
Уважаемый MLADEN
Мы с Тимми пытаемся играть (копировать/вставить) с простым советником с базовой продажей/покупкой на изменении тренда, основанного на "средних - mtf - alerts 8.7", так как мы оба ноль в вопросах кодирования, пожалуйста, помогите и подскажите, как кодировать (icustom) для этой версии средних.
с уважением
double Averages_trend_current = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse);
double Averages_trend_previous = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse+1);
Уважаемый MLADEN
Мы с Тимми пытаемся играть (копировать/вставить) с простым советником с базовой продажей/покупкой на изменении тренда, основанного на "средних - mtf - alerts 8.7", так как мы оба ноль в вопросах кодирования, пожалуйста, помогите и подскажите, как кодировать (icustom) для этой версии средних.
с уважением
double Averages_trend_current = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse);
double Averages_trend_previous = iCustom(NULL,0,"averages - mtf - alerts 8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse+1);
Что-то не так с буферами, я использовал буфер: 2 для покупки и оба буфера 3 и 4 для продажи, но все срабатывает постоянно, пробовал использовать только буфер 2 для покупки и буфер 3 для продажи, но произошло то же самое.
С буферами все в порядке. Используйте буфер 9: 1 для тренда вверх, -1 для тренда вниз.
Уважаемый господин Младен,
Мне нужен индикатор гистограммы для моей стратегии торговли, сейчас я использую индикатор XB4 и индикатор стратегии Bandit. но они не имеют оповещения и уведомления, отправляемые на электронную почту или на мой андроид MT4.
Есть ли у вас модифицированный индикатор XB4d ndicator, который имеет оповещения, отправляемые по электронной почте и уведомления, отправляемые на телефон android mobil. если гистограмма меняет цвет с синего на красный, или с красного на синий на первом баре.
и гистограмма трендовой сессии от индикатора Bandid system, которая меняет цвет с синего на красный, или с красного на синий, первый цвет меняющегося тренда.
Не могли бы вы помочь мне с этим индикатором, господин Младен.
с уважением,
Самуэль