Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Все еще проблемы
Привет всем,
Спасибо Big Be за то, что взглянул на мой советник. Мой Stochastic RSI без подчеркивания. Когда я попробовал с ним, он выдал ошибку. Но я обнаружил несколько вещей.
1) Когда я пробую Strategy Tester на младших тайм-фреймах, он, кажется, работает быстрее. Как только я перехожу на H1 или выше, он становится очень медленным. Я предполагаю, что это происходит потому, что ему приходится делать слишком много проверок на каждом тике. Можно ли что-нибудь с этим сделать? Я бы хотел оптимизировать его для H4 и, возможно, даже для Daily.
2) По-прежнему существует проблема, когда первая сделка происходит до фактического пересечения.
3) Когда я смотрю на свои бэктесты, кажется, что он полностью пропускает некоторые сделки. Это потому, что мои данные несовершенны/несоответствуют друг другу? Я проверил все вокруг и нашел место, где New Digital объясняет, как получить данные для брокера, которого мы используем, перейдя к истории и дважды щелкнув по ней... затем открывая каждый таймфрейм и удерживая "Page Up", пока он не достигнет конца, но, похоже, это не помогло.
Часть программы, которую я вам отправил, является только одной частью из трех. Мне все еще нужно добавить в нее остальные три части. Если я не смогу заставить тестер стратегий работать быстрее, я никогда не узнаю, прибыльная ли это идея.
Любые идеи или предложения будут полезны.
С уважением,
Putz
Изучите то, что я сделал для советника Volatility Quality Index EA, который я исправил, Kiko_v2.
См. пост 319 здесь:
https://www.mql5.com/en/forum/general
Удачи,
Big Be
Vq
Привет, Биг Би
Спасибо за идею. Я буду работать над этим в эти выходные... и если все будет работать фантастически... я должен быть богат к следующим выходным... хахаха
Putz
Помогите... пожалуйста
Привет Big Be и всем программистам,
Big Be, я изучил ваш советник по волатильности, но теперь кажется, что это была не моя проблема. Я использовал IBFX для бэктестинга и не имел ничего, кроме проблем. В конце концов я сдался и скачал Alpari, и он работает намного лучше.
По крайней мере, теперь не нужно тратить дни, чтобы провести бэктест моего советника. Так что я начал все сначала и перестроил свою программу с нуля, и она не выставляет никаких ордеров.
Программа в основном представляет собой EMS Fresh Cross от Codersguru, но я хочу, чтобы она была основана на Stochastic RSI и когда StochRSI пересекает линию 50. Я оставил почти все как у codersguru, включая переменные, чтобы легче было изолировать проблему.
Я считаю, что проблема в функции iCustom, так как это практически единственное изменение, которое я сделал в программе, и она не принимает никаких ордеров. Может ли кто-нибудь посмотреть на это и найти мою ошибку. Я уже две недели пытаюсь заставить это работать, и это сводит меня с ума.
Я поместил несколько заметок, которым предшествует //.
Спасибо
Putz
#property copyright "Putz FX
#property link "http://www.putzfx.com"
//---- input parameters
extern double TakeProfit=130;
extern double StopLoss = 60;
extern double Lots=1;
extern double TrailingStop=30;
extern double TimeFrame= 60;
extern bool ExitOnCross = true;
extern int MagicNumber = 444444;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
int FreshCross ()
{
//This was added in based on what I could figure from Big Be.
if (Volume[0] != 1) return(0);
//what is the difference between using "Null" or "Symbol()" in iCustom as
//neither one works.
double SEma, LEma,SEmaP, LEmaP;
//The following 4 lines have been changed from the original
SEma = iCustom(Symbol(),PERIOD_H1,"Stochastic RSI",28,55,9,0,0);
LEma = 50;
SEmaP = iCustom(Symbol(),PERIOD_H1,"Stochastic RSI",28,55,9,0,1);
LEmaP = 50;
//Don't work in the first load, wait for the first cross!
//some changes were done to the below two lines as he was comparing the
//return value with the Ask or Bid and Close values
if(SEma>LEma && SEmaP < LEmaP) return(1); //up
if(SEma LEmaP) return(2); //down
return (0); //not changed
}
//+------------------------------------------------------------------+
//| Check Open Position Controls |
//+------------------------------------------------------------------+
int CheckOpenTrades()
{
int cnt;
int NumTrades; // Number of buy and sell trades in this symbol
NumTrades = 0;
for(cnt=OrdersTotal()-1;cnt>=0;cnt--)
{
OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
if ( OrderSymbol() != Symbol()) continue;
if ( OrderMagicNumber() != MagicNumber) continue;
if(OrderType() == OP_BUY ) NumTrades++;
if(OrderType() == OP_SELL ) NumTrades++;
}
return (NumTrades);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
int cnt, ticket, total;
double TP;
if(Bars<100)
{
Print("bars less than 100");
return(0);
}
/* if(TakeProfit<10)
{
Print("TakeProfit less than 10");
return(0); // check TakeProfit
}
*/
int isCrossed = 0;
isCrossed = FreshCross ();
total = CheckOpenTrades();
if(total < 1)
{
if(isCrossed == 1)
{
TP = 0;
if (TakeProfit > 0) TP = Ask + TakeProfit * Point;
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,TP,"EMA_CROSS",MagicNumber,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
if(isCrossed == 2)
{
TP = 0;
if (TakeProfit > 0) TP = Bid - TakeProfit * Point;
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,TP,"EMA_CROSS",MagicNumber,0,Black);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
return(0);
}
return(0);
}
total = OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
//OrderPrint();
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)
{
if(OrderType()==OP_BUY) // long position is opened
{
// should it be closed?
/* REMOVED - Trailling stop only close */
if(ExitOnCross && isCrossed == 2)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Black); // close position
return(0); // exit
}
/**/
// check for trailing stop
if(TrailingStop>0){
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else // go to short position
{
// should it be closed?
/* REMOVED - Trailling stop only close */
if(ExitOnCross && isCrossed == 1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Black); // close position
return(0); // exit
}
/* */
// check for trailing stop
if(TrailingStop>0){
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
//+------------------------------------------------------------------+Проверяли ли вы, что ваш Stochastic RSI принимает 3 входных параметра?
(Тот, который я рассматривал, принимает 4)
это помогает
Привет, Ральф,
Спасибо за помощь. У меня два буфера, но 4 входных параметра. Я попробовал с 4 параметрами и это не сработало, но затем я попробовал с 2 и получил заказ. Теперь мне нужно разобраться с остальным. Спасибо, что помогли мне разобраться.
Putz
Вопрос новичка от новичка!
сообщение перенесено сюда: https://www.mql5.com/en/forum
кто-нибудь может мне помочь?
привет всем
все вы знаете индикатор Pivot_Monday_fixed.
Мне нужны некоторые изменения в этом индикаторе
мне нужна только линия разворота и еще четыре линии
2 синего цвета Pivot +20 и Pivot + 40
2 красного цвета Pivot - 20 и Pivot - 40
только 5 линий
спасибо
Глупый вопрос
Кто-нибудь может подсказать мне самый быстрый способ конвертировать mq4-файл советника в ex4-файл?
Я знаю, что после запуска на mt4 он отображается в файлах экспертов как ex4, но это единственный способ сделать это?
Заранее спасибо
Может ли кто-нибудь подсказать мне самый быстрый способ конвертировать mq4-файл советника в ex4-файл?
Я знаю, что он отображается в файлах экспертов как ex4 после запуска на mt4 один раз, но это единственный способ сделать это?
Заранее спасибоОткройте ваш .mq4 файл в MetaEditor, затем нажмите "Compile" и файл .ex4 будет создан.