Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо большое, Младен .... Вы великолепны ...
Привет, ребята,
помогите, пожалуйста, с моим запросом на странице 103. Я искал информацию в интернете, но так и не смог заставить срабатывать оповещение на каждые 5 бар (начиная с начала часа).
Заранее спасибо
Уважаемый Mladen/Mr Tools Не могли бы вы исправить эту еа так, чтобы она не открывала сделку заново после того, как стоп или tp будет достигнут.
Помощь в кодировании для стоп-лосса
Привет, ребята,
У меня есть советник, который я не могу изменить стоп-лосс.
Независимо от того, что я меняю, он не меняется. Я бы хотел изменить стоп-лосс хотя бы до 300. Есть идеи?
Заранее спасибо
вот код для этого:
// общий пользовательский ввод
extern double Lots=1.0;
extern int TakeProfit=44;
extern int StopLoss=90;
extern bool RSIMethodA=false;
extern bool RSIMethodB=true;
extern int RSIValue=50;
extern bool AbandonMethodA=true;
extern bool AbandonMethodB=false;
extern int Abandon=101;
extern bool MoneyManagement=true;
extern int Risk=2;
extern int Slippage=3;
extern bool UseProfitLock=true;
extern int BreakEvenTrigger=25;
extern int BreakEven=3;
extern bool LiveTrading=false;
extern bool AccountIsMini=false;
extern int maxTradesPerPair=1;
extern int MagicNumber=5432;
double lotMM;
bool BuySignal=false;
bool SetBuy=false;
bool SellSignal=false;
bool SetSell=false;
// Обработка баров
datetime bartime=0;
int bartick=0;
int TradeBars=0;
//+------------------------------------------------------------------+
//| Функция инициализации эксперта |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| функция деинициализации эксперта | |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| функция запуска эксперта |
//+------------------------------------------------------------------+
int start()
{
//----
if (UseProfitLock) ProfitLockStop();
if (AbandonMethodA || AbandonMethodB)
{
RunAbandonCheck();
RunAbandonMethods();
}
if (!SetLotsMM()) return(0);
RunOrderTriggerCalculations();
RunPairSpesificSettings();
RunNewOrderManagement();
//----
return(0);
}
/////////////////////////////////////////////////
// SetLotsMM - By Robert Cochran http://autoforex.biz
/////////////////////////////////////////////////
bool SetLotsMM()
{
double MarginCutoff;
if(!AccountIsMini) MarginCutoff = 1000;
if( AccountIsMini) MarginCutoff = 100;
if(AccountFreeMargin() < MarginCutoff) return(false);
if(MoneyManagement)
{
lotMM = MathCeil(AccountBalance() * Risk / 10000) / 10;
if(lotMM < 0.1) lotMM = Lots;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
// Обеспечение соблюдения границ размера лота
if(LiveTrading)
{
if( AccountIsMini) lotMM = lotMM * 10;
if(!AccountIsMini && lotMM < 1.0) lotMM = 1.0;
}
if(lotMM > 100) lotMM = 100;
}
else
{
lotMM = Lots; // Измените MoneyManagement на 0, если хотите, чтобы параметр Lots действовал.
}
return (true);
}
//+------------------------------------------------------------------+
/////////////////////////////////////////////////
// RunOrderTriggerCalculations
/////////////////////////////////////////////////
bool RunOrderTriggerCalculations()
{
bool RSIPOS=false;
bool RSINEG=false;
// 3-периодная скользящая средняя на баре[1]
double bullMA3=iMA(Symbol(),0,3,0,MODE_EMA,PRICE_CLOSE,1);
// 7-периодная скользящая средняя на баре[1]
double bearMA7=iMA(Symbol(),0,7,0,MODE_EMA,PRICE_CLOSE,1);
// 2-периодная скользящая средняя на баре[2]
double RSI=iRSI(Symbol(),0,2,PRICE_CLOSE,2);
double RSI2=iRSI(Symbol(),0,2,PRICE_CLOSE,1);
// Определите, в какой полярности находится RSI
if (RSIMethodA)
{
if(RSI>RSIValue && RSI2<RSIValue)
{
RSIPOS=true;
RSINEG=false;
}
else RSIPOS=false;
if(RSIRSIValue)
{
RSIPOS=false;
RSINEG=true;
}
else RSINEG=false;
}
if (RSIMethodB)
{
if(RSI>RSIValue)
{
RSIPOS=true;
RSINEG=false;
}
if(RSI<RSIValue)
{
RSIPOS=false;
RSINEG=true;
}
}
if ((bullMA3 > (bearMA7+Point)) && RSINEG)
{
BuySignal=true;
}
else BuySignal=false;
if ((bullMA3 < (bearMA7-Point)) && RSIPOS)
{
SellSignal=true;
}
else SellSignal=false;
return(true);
}
/////////////////////////////////////////////////
// OpenOrdersBySymbolAndComment
/////////////////////////////////////////////////
int OpenOrdersForThisEA()
{
int ofts=0;
for(int x=0;x<OrdersTotal();x++)
{
OrderSelect(x, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
ofts++;
}
}
return(ofts);
}
/////////////////////////////////////////////////
// PROFIT LOCK - By Robert Cochran - http://autoforex.biz
/////////////////////////////////////////////////
bool ProfitLockStop()
{
if( OpenOrdersForThisEA() > 0 )
{
for ( int i = 0; i < OrdersTotal(); i++){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
//--- ДЛИННЫЕ СДЕЛКИ
if(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber()== MagicNumber)
{
if (Bid >= OrderOpenPrice() + BreakEvenTrigger*Point &&
OrderOpenPrice() > OrderStopLoss())
{
OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + BreakEven * Point, OrderTakeProfit(), Green);
}
}
//--- КОРОТКИЕ СДЕЛКИ
if(OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber()==MagicNumber)
{
if (Ask <= OrderOpenPrice() - BreakEvenTrigger*Point &&
OrderOpenPrice() < OrderStopLoss())
{
OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice() - BreakEven * Point, OrderTakeProfit(), Blue);
}
}
}
}
}
/////////////////////////////////////////////////
// ОТКАЗ ОТ ПРОВЕРКИ
/////////////////////////////////////////////////
bool RunAbandonCheck()
{
if( OpenOrdersForThisEA() > 0 )
{
if (TradeBars == 0 && bartick == 0)
{
for (int i = 0; i < OrdersTotal(); i++)
{
if (OrderSymbol() == Symbol())
{
TradeBars = MathFloor(CurTime() - OrderOpenTime())/60/Period();
bartime = Time[0];
bartick = TradeBars;
}
}
}
if(bartime!=Time[0])
{
bartime=Time[0];
bartick++;
}
}
return(true);
}
/////////////////////////////////////////////////
// RunAbandonMethods
/////////////////////////////////////////////////
bool RunAbandonMethods()
{
if( OpenOrdersForThisEA() > 0 )
{
for (int i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (AbandonMethodA && bartick==Abandon)//Force "HEDGE" after abandon
{
// ДЛИННЫЕ ТОРГОВЛИ
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Blue);
SetSell=true;
продолжаем;
}
// КОРОТКИЕ СДЕЛКИ
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Blue);
SetBuy=true;
продолжаем;
}
}
if (AbandonMethodB && bartick==Abandon)//Индикаторы определяют направление после отказа от сделки
{
// ДЛИННЫЕ ТОРГОВЛИ
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,White);
continue;
}
// КОРОТКИЕ СДЕЛКИ
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,White);
continue;
}
}
}
}
return(true);
}
/////////////////////////////////////////////////
// RunPairSpesificSettings
/////////////////////////////////////////////////
bool RunPairSpesificSettings()
{
// настраиваем оптимизацию символов
if (Symbol()=="GBPUSD")
{
TakeProfit=55; StopLoss=100; Abandon=69;
}
return (true);
}
/////////////////////////////////////////////////
// RunNewOrderManagement
/////////////////////////////////////////////////
bool RunNewOrderManagement()
{
double TP,SL;
if( OpenOrdersForThisEA() < maxTradesPerPair )
{
//ENTRY Ask(buy, long)
if (BuySignal || SetBuy)
{
SL = Ask - StopLoss*Point;
TP = Ask + TakeProfit*Point;
OrderSend(Symbol(),OP_BUY,lotMM,Ask,Slippage,SL,TP, "TS-ProfitLock - "+Symbol()+" - Long",MagicNumber,0,White);
bartick=0;
if (SetBuy) SetBuy=false;
return (true);
}
//ENTRY Bid (sell, short)
if (SellSignal || SetSell)
{
SL = Bid + StopLoss*Point;
TP = Bid - TakeProfit*Point;
OrderSend(Symbol(),OP_SELL,lotMM,Bid,Slippage,SL,TP, "TS-ProfitLock - "+Symbol()+" - Short",MagicNumber,0,Red);
bartick=0;
if (SetSell) SetSell=false;
return (true);
}
}
return(true);
}
Привет ребята,
У меня есть советник, который я не могу изменить стоп-лосс.
Независимо от того, что я меняю, он не меняется. Я хотел бы изменить стоп-лосс хотя бы до 300. Есть идеи?
Заранее спасибо
вот код для этого:
// общий пользовательский ввод
extern double Lots=1.0;
extern int TakeProfit=44;
extern int StopLoss=90;
extern bool RSIMethodA=false;
extern bool RSIMethodB=true;
extern int RSIValue=50;
extern bool AbandonMethodA=true;
extern bool AbandonMethodB=false;
extern int Abandon=101;
extern bool MoneyManagement=true;
extern int Risk=2;
extern int Slippage=3;
extern bool UseProfitLock=true;
extern int BreakEvenTrigger=25;
extern int BreakEven=3;
extern bool LiveTrading=false;
extern bool AccountIsMini=false;
extern int maxTradesPerPair=1;
extern int MagicNumber=5432;
double lotMM;
bool BuySignal=false;
bool SetBuy=false;
bool SellSignal=false;
bool SetSell=false;
// Обработка баров
datetime bartime=0;
int bartick=0;
int TradeBars=0;
//+------------------------------------------------------------------+
//| Функция инициализации эксперта |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| функция деинициализации эксперта | |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| функция запуска эксперта |
//+------------------------------------------------------------------+
int start()
{
//----
if (UseProfitLock) ProfitLockStop();
if (AbandonMethodA || AbandonMethodB)
{
RunAbandonCheck();
RunAbandonMethods();
}
if (!SetLotsMM()) return(0);
RunOrderTriggerCalculations();
RunPairSpesificSettings();
RunNewOrderManagement();
//----
return(0);
}
/////////////////////////////////////////////////
// SetLotsMM - By Robert Cochran Welcome autoforex.biz - BlueHost.com
/////////////////////////////////////////////////
bool SetLotsMM()
{
double MarginCutoff;
if(!AccountIsMini) MarginCutoff = 1000;
if( AccountIsMini) MarginCutoff = 100;
if(AccountFreeMargin() < MarginCutoff) return(false);
if(MoneyManagement)
{
lotMM = MathCeil(AccountBalance() * Risk / 10000) / 10;
if(lotMM < 0.1) lotMM = Lots;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
// Обеспечение соблюдения границ размера лота
if(LiveTrading)
{
if( AccountIsMini) lotMM = lotMM * 10;
if(!AccountIsMini && lotMM < 1.0) lotMM = 1.0;
}
if(lotMM > 100) lotMM = 100;
}
else
{
lotMM = Lots; // Измените MoneyManagement на 0, если хотите, чтобы параметр Lots действовал.
}
return (true);
}
//+------------------------------------------------------------------+
/////////////////////////////////////////////////
// RunOrderTriggerCalculations
/////////////////////////////////////////////////
bool RunOrderTriggerCalculations()
{
bool RSIPOS=false;
bool RSINEG=false;
// 3-периодная скользящая средняя на баре[1]
double bullMA3=iMA(Symbol(),0,3,0,MODE_EMA,PRICE_CLOSE,1);
// 7-периодная скользящая средняя на баре[1]
double bearMA7=iMA(Symbol(),0,7,0,MODE_EMA,PRICE_CLOSE,1);
// 2-периодная скользящая средняя на баре[2]
double RSI=iRSI(Symbol(),0,2,PRICE_CLOSE,2);
double RSI2=iRSI(Symbol(),0,2,PRICE_CLOSE,1);
// Определите, в какой полярности находится RSI
if (RSIMethodA)
{
if(RSI>RSIValue && RSI2<RSIValue)
{
RSIPOS=true;
RSINEG=false;
}
else RSIPOS=false;
if(RSIRSIValue)
{
RSIPOS=false;
RSINEG=true;
}
else RSINEG=false;
}
if (RSIMethodB)
{
if(RSI>RSIValue)
{
RSIPOS=true;
RSINEG=false;
}
if(RSI<RSIValue)
{
RSIPOS=false;
RSINEG=true;
}
}
if ((bullMA3 > (bearMA7+Point)) && RSINEG)
{
BuySignal=true;
}
else BuySignal=false;
if ((bullMA3 < (bearMA7-Point)) && RSIPOS)
{
SellSignal=true;
}
else SellSignal=false;
return(true);
}
/////////////////////////////////////////////////
// OpenOrdersBySymbolAndComment
/////////////////////////////////////////////////
int OpenOrdersForThisEA()
{
int ofts=0;
for(int x=0;x<OrdersTotal();x++)
{
OrderSelect(x, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
ofts++;
}
}
return(ofts);
}
/////////////////////////////////////////////////
// PROFIT LOCK - Роберт Кокран - Добро пожаловать autoforex.biz - BlueHost.com
/////////////////////////////////////////////////
bool ProfitLockStop()
{
if( OpenOrdersForThisEA() > 0 )
{
for ( int i = 0; i < OrdersTotal(); i++){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
//--- ДЛИННЫЕ СДЕЛКИ
if(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber()== MagicNumber)
{
if (Bid >= OrderOpenPrice() + BreakEvenTrigger*Point &&
OrderOpenPrice() > OrderStopLoss())
{
OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + BreakEven * Point, OrderTakeProfit(), Green);
}
}
//--- КОРОТКИЕ СДЕЛКИ
if(OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber()==MagicNumber)
{
if (Ask <= OrderOpenPrice() - BreakEvenTrigger*Point &&
OrderOpenPrice() < OrderStopLoss())
{
OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice() - BreakEven * Point, OrderTakeProfit(), Blue);
}
}
}
}
}
/////////////////////////////////////////////////
// ОТКАЗ ОТ ПРОВЕРКИ
/////////////////////////////////////////////////
bool RunAbandonCheck()
{
if( OpenOrdersForThisEA() > 0 )
{
if (TradeBars == 0 && bartick == 0)
{
for (int i = 0; i < OrdersTotal(); i++)
{
if (OrderSymbol() == Symbol())
{
TradeBars = MathFloor(CurTime() - OrderOpenTime())/60/Period();
bartime = Time[0];
bartick = TradeBars;
}
}
}
if(bartime!=Time[0])
{
bartime=Time[0];
bartick++;
}
}
return(true);
}
/////////////////////////////////////////////////
// RunAbandonMethods
/////////////////////////////////////////////////
bool RunAbandonMethods()
{
if( OpenOrdersForThisEA() > 0 )
{
for (int i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (AbandonMethodA && bartick==Abandon)//Force "HEDGE" after abandon
{
// ДЛИННЫЕ ТОРГОВЛИ
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Blue);
SetSell=true;
продолжаем;
}
// КОРОТКИЕ СДЕЛКИ
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Blue);
SetBuy=true;
продолжаем;
}
}
if (AbandonMethodB && bartick==Abandon)//Индикаторы определяют направление после отказа от сделки
{
// ДЛИННЫЕ ТОРГОВЛИ
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,White);
continue;
}
// КОРОТКИЕ СДЕЛКИ
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&
OrderMagicNumber()==MagicNumber)
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,White);
continue;
}
}
}
}
return (true);
}
/////////////////////////////////////////////////
// RunPairSpesificSettings
/////////////////////////////////////////////////
bool RunPairSpesificSettings()
{
// настраиваем оптимизацию символов
if (Symbol()=="GBPUSD")
{
TakeProfit=55; StopLoss=100; Abandon=69;
}
return (true);
}
/////////////////////////////////////////////////
// RunNewOrderManagement
/////////////////////////////////////////////////
bool RunNewOrderManagement()
{
double TP,SL;
if( OpenOrdersForThisEA() < maxTradesPerPair )
{
//ENTRY Ask(buy, long)
if (BuySignal || SetBuy)
{
SL = Ask - StopLoss*Point;
TP = Ask + TakeProfit*Point;
OrderSend(Symbol(),OP_BUY,lotMM,Ask,Slippage,SL,TP, "TS-ProfitLock - "+Symbol()+" - Long",MagicNumber,0,White);
bartick=0;
if (SetBuy) SetBuy=false;
return (true);
}
//ENTRY Bid (sell, short)
if (SellSignal || SetSell)
{
SL = Bid + StopLoss*Point;
TP = Bid - TakeProfit*Point;
OrderSend(Symbol(),OP_SELL,lotMM,Bid,Slippage,SL,TP, "TS-ProfitLock - "+Symbol()+" - Short",MagicNumber,0,Red);
bartick=0;
if (SetSell) SetSell=false;
return (true);
}
}
return(true);
}Он всегда будет устанавливать StopLoss на 100, если символ GBPUSD.
Для остальных все должно работать нормально (за исключением того, что вы должны умножить стоп-лосс на 10 для 5-значных брокеров, так как советник работает с пунктами, а не с пипсами).
В данный момент я использую его на USD/JPY, и стоп-лосс все еще остается на уровне 100.
Где я могу найти множитель стоп-лосса?
Я использую его на USD/JPY в данный момент, и стоп-лосс все еще остается на 100. Где я могу найти множитель стоп-лосса?
Стоп-лосс и тейк-профит устанавливаются в этой части:
{
double TP,SL;
if( OpenOrdersForThisEA() < maxTradesPerPair )
{
//ENTRY Ask(buy, long)
if (BuySignal || SetBuy)
{
SL = Ask - StopLoss*Point;
TP = Ask + TakeProfit*Point;
OrderSend(Symbol(),OP_BUY,lotMM,Ask,Slippage,SL,TP ,"TS-ProfitLock - "+Symbol()+" - Long",MagicNumber,0,White);
bartick=0;
if (SetBuy) SetBuy=false;
return(true);
}
//ENTRY Bid (sell, short)
if (SellSignal || SetSell)
{
SL = Bid + StopLoss*Point;
TP = Bid - TakeProfit*Point;
OrderSend(Symbol(),OP_SELL,lotMM,Bid,Slippage,SL,T P,"TS-ProfitLock - "+Symbol()+" - Short",MagicNumber,0,Red);
bartick=0;
if (SetSell) SetSell=false;
return(true);
}
}
return(true);
}[/PHP]
As of stop loss that stays 100 : this part of code
[PHP]bool RunPairSpesificSettings()
{
// set up the symbol optimizations
if (Symbol()=="GBPUSD")
{
TakeProfit=55; StopLoss=100; Abandon=69;
}
return(true);
}активируется только если символ "GBPUSD" (как видно из кода), поэтому только в этом случае он возвращается. Проверьте ваш код еще раз и посмотрите на 100 и вы увидите, что происходит с вашими стоп-лоссами, так как в коде, который вы приложили, стоп-лосс возвращается только в случае GBPUSD.
Он по-прежнему не меняет стоп-лосс, даже если я меняю валютные пары на те, которыми я торгую. Этот советник был бы идеальным, если бы стоп-лосс можно было изменить.
Спасибо за попытку помочь в любом случае.
Привет кодеры,
Может ли кто-нибудь помочь модифицировать этот индикатор squeeze break, чтобы иметь опцию EMA bollinger band, а также опцию EMA keltner channel?
Спасибо :)
Привет кодеры,
Может ли кто-нибудь помочь модифицировать этот индикатор прорыва сжатия, чтобы иметь опцию полосы Боллинджера EMA, а также опцию канала Кельтнера EMA?
Спасибо :)Привет, Iwillsurvive, изменил индикатор так, что у вас будет выбор ma как в полосе кельтнера, так и в полосе боллинджера, по умолчанию он установлен на EMA.