Привет, люди, помогите подправить простой 3МА, он иногда сра3у несколько ордеров открывает по паре, иногда вообще не открывает хоть и есть сигнал,мохно его сделать бе3 SL/TР-сам буду,а просто локирующим? спасибо
//+------------------------------------------------------------------+
//| простой советник.mq4 |
//| Copyright © 2011, Хлыстов Владимир |
//| [email]cmillion@narod.ru[/email] |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, http://cmillion.narod.ru"
#property link "cmillion@narod.ru"
//--------------------------------------------------------------------
extern int period_1 = 5,
period_2 = 30,
period_3 = 100,
stoploss = 0,
takeprofit = 0;
extern double LOT = 0.1;
extern bool CloseRevers = true;
//--------------------------------------------------------------------
int TimeBar;
//--------------------------------------------------------------------
int start()
{
if (TimeBar==Time[0]) return(0);
double MA10 = iMA(NULL,0,period_1,0,MODE_EMA,PRICE_OPEN,0);
double MA11 = iMA(NULL,0,period_1,0,MODE_EMA,PRICE_OPEN,1);
double MA20 = iMA(NULL,0,period_2,0,MODE_LWMA,PRICE_OPEN,0);
double MA21 = iMA(NULL,0,period_2,0,MODE_LWMA,PRICE_OPEN,1);
double MA3 = iMA(NULL,0,period_3,0,MODE_LWMA,PRICE_OPEN,0);
double SL,TP;
if (MA10>MA20&&MA11<MA21&&MA20>MA3)
{
TimeBar=Time[0];
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Bid - stoploss*Point,Digits); else SL = 0;
if (CloseRevers) CLOSEORDER(OP_SELL);
OrderSend(Symbol(),OP_BUY, LOT,NormalizeDouble(Ask,Digits),2,SL,TP,"простой советник",123,3);
}
if (MA10<MA20&&MA11>MA21&&MA20<MA3)
{
TimeBar=Time[0];
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP = 0;
if (stoploss!=0) SL = NormalizeDouble(Ask + stoploss*Point,Digits); else SL = 0;
if (CloseRevers) CLOSEORDER(OP_BUY);
OrderSend(Symbol(),OP_SELL,LOT,NormalizeDouble(Bid,Digits),2,SL,TP,"простой советник",123,3);
}
return(0);
}
//--------------------------------------------------------------------
void CLOSEORDER(int ord)
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol() && OrderMagicNumber()==123)
{
if (OrderType()==OP_BUY && ord==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3,CLR_NONE);
if (OrderType()==OP_SELL && ord==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,CLR_NONE);
}
}
}
}
//--------------------------------------------------------------------
Файлы:
Sovetnic_3MA.mq4
3 kb
- Помогите решить проблему
- [АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5.
- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
ToniFalcone:
иногда вообще не открывает хоть и есть сигнал, можно его сделать без SL/TР-сам буду,а просто локирующим?
Не открывает значит нет сигнала, а SL/TP можно поставить =0 и тогда не будет стопов.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь