Спрашивайте! - страница 97

 

Все еще проблемы

Привет всем,

Спасибо 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

Файлы:
buy.jpg  7 kb
 

кто-нибудь может мне помочь?

привет всем

все вы знаете индикатор Pivot_Monday_fixed.

Мне нужны некоторые изменения в этом индикаторе

мне нужна только линия разворота и еще четыре линии

2 синего цвета Pivot +20 и Pivot + 40

2 красного цвета Pivot - 20 и Pivot - 40

только 5 линий

спасибо

Файлы:
 

Глупый вопрос

Кто-нибудь может подсказать мне самый быстрый способ конвертировать mq4-файл советника в ex4-файл?

Я знаю, что после запуска на mt4 он отображается в файлах экспертов как ex4, но это единственный способ сделать это?

Заранее спасибо

 
fxgrm:
Может ли кто-нибудь подсказать мне самый быстрый способ конвертировать mq4-файл советника в ex4-файл?

Я знаю, что он отображается в файлах экспертов как ex4 после запуска на mt4 один раз, но это единственный способ сделать это?

Заранее спасибо

Откройте ваш .mq4 файл в MetaEditor, затем нажмите "Compile" и файл .ex4 будет создан.