- Мистика с индикатором Harmonic Butterfly... нужна помощь знатоков.
- Вопрос по терминалу
- Разная работа тестера на разных компьютерах
надо устанавливать!
эти параметры маскируют любые изменения в коде эксперта .
Скорее всего у тебя в эксперте заданы параметры жестко. Меняй не меняй один фиг. Кидай код эксперта сюда поможем разобраться.
//+------------------------------------------------------------------+
//| _AnalogTWIST.mq4 |
//| Copyright © 2007, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/"
extern double Lots = 0.1; // Лот
extern double TakeProfit = 50;
extern double StopLoss = 30;
extern int FastMAperiod = 5;
extern int FastMAmode = 1; // 0-4
extern int FastMAprice = 0; //0-6
extern int SlowMAperiod = 14;
extern int SlowMAmode = 1;
extern int SlowMAprice = 0;
//---------------------------------- Служебные переменные ----------------------------
int Magic = 7771; // Magic number
string TradeComment = ""; // Комментарий к открытым ордерам
string Expert = "MACROSS"; // Название эксперта
int Slippage = 4; // Проскальзывание
int PrevTime=0;
int OrdersPerSymbol=0, OrdersBUY=0, OrdersSELL=0, ticket, Operation=0, trigger=0;
double Lot, SL,TP,FastMA1,FastMA2,SlowMA1,SlowMA2,price_holder;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
OrdersPerSymbol=0; OrdersBUY=0; OrdersSELL=0; Operation=0; Lot=Lots; Operation=0;
if (PrevTime!=Time[0])
{
FastMA1=iMA(NULL,0,FastMAperiod,0,FastMAmode,FastMAprice,1);
FastMA2=iMA(NULL,0,FastMAperiod,0,FastMAmode,FastMAprice,2);
SlowMA1=iMA(NULL,0,SlowMAperiod+FastMAperiod,0,SlowMAmode,SlowMAprice,1);
SlowMA2=iMA(NULL,0,SlowMAperiod+FastMAperiod,0,SlowMAmode,SlowMAprice,2);
if (FastMA2>SlowMA2 && FastMA1<=SlowMA1) {trigger=-1; price_holder=Low[1];}
if (FastMA2<SlowMA2 && FastMA1>=SlowMA1) {trigger=1; price_holder=High[1];}
PrevTime=Time[0];
}
if (trigger==-1 && Bid<price_holder) Operation=11;
if (trigger==1 && Bid>price_holder) Operation=22;
int total=OrdersTotal();
for(int cnt=total-1;cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
int openticket = OrderTicket();
if(OrderType()==OP_BUY && Operation==11)
{
ticket=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slippage,Blue);
if(ticket<0)
{
Print("OrderClose of BuyOrder failed with error #",GetLastError());
Comment("OrderClose of BuyOrder failed with error #",GetLastError());
}
}
if(OrderType()==OP_SELL && Operation==22)
{
ticket = OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slippage,Red);
if(ticket<0)
{
Print("OrderClose of SellOrder failed with error #",GetLastError());
Comment("OrderClose of BuyOrder failed with error #",GetLastError());
}
}
}
}
for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
OrdersPerSymbol++;
if(OrderType()==OP_BUY) OrdersBUY++;
if(OrderType()==OP_SELL) OrdersSELL++;
}
}
if (Operation==22 && OrdersBUY<1)
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),Slippage,0,0,TradeComment,Magic,Blue);
if(ticket<0)
{
Print("OrderSend failed with error #",GetLastError());
}
else {Operation=0; trigger=0;}//SendMail("from your expert", "Open BUY at "+DoubleToStr(Ask,Digits) + "; SL = " + SL + "; TP = " + TP);
}
if (Operation==11 && OrdersSELL<1 )
{
ticket=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),Slippage,0,0,TradeComment,Magic,Red);
if(ticket<0)
{
Print("OrderSend failed with error #",GetLastError());
}
else {Operation=0; trigger=0;}//SendMail("from your expert", "Open SELL at "+DoubleToStr(Ask,Digits) + "; SL = " + SL + "; TP = " + TP);}
}
Sleep(1000);
RefreshRates();
for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY && ((OrderStopLoss()==0 && StopLoss!=0) || (OrderTakeProfit()==0 && TakeProfit!=0)))
{
if (StopLoss==0) SL=0; else SL=NormalizeDouble(Ask-StopLoss*Point, Digits);
if (TakeProfit==0) TP=0; else TP=NormalizeDouble(Ask+TakeProfit*Point, Digits);
if (!OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0,Blue)) Print("OrderModify failed with error #",GetLastError());
}
if(OrderType()==OP_SELL && ((OrderStopLoss()==0 && StopLoss!=0) || (OrderTakeProfit()==0 && TakeProfit!=0)))
{
if (StopLoss==0) SL=0; else SL=NormalizeDouble(Bid+ StopLoss*Point, Digits);
if (TakeProfit==0) TP=0; else TP=NormalizeDouble(Bid-TakeProfit*Point, Digits);
if (!OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0,Red)) Print("OrderModify failed with error #",GetLastError());
}
}
}
return(0);
}
//+------------------------------------------------------------------+
Уважаемые трейдеры! Не могу найти выход из ситуации: загружаю в тестер одни параметры индикаторов, а тестирует он совсем по другим параметрам. Понятно, что результат вообще никаой... Почему он такие "дули крутит" и как от этого избавиться? Пробовал на разных терминалах, результат тот же... Видимо, я что-то не так делаю... Подскажите, пожалуйста.
Так никто и не поможет?
как же бездарно написан код :)
вообще за такое дело на работе дают весомых люлей :)
ГДЕ ФОРМАТИРОВАНИЕ ? :)
to Vadimus
все нормально.
в окне тестера справа есть батон "Свойства Эксперта"
там те же имена параметров что в коде, там и устнавливают для тестирования, (а код не трогают не пeрекомпилируют)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования