Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
привет
большое спасибо всем друзьям
Вы не можете использовать индикатор как советник, вы должны использовать советник с индикатором, вот так:
P.S. Не забудьте поместить индикатор в каталог индикаторов.
удалено
--- удалено ---
Код для отображения дней/часов с момента последнего пересечения МА
Мне нужен код, который показывает последний раз, когда две MA пересеклись (т.е. как давно). Он может показывать это в днях или часах.
Любая помощь будет оценена по достоинству!
Тодд
Конвертация в рыночное исполнение
У меня есть советник, созданный для версии Metatrader4 "Instant Execution", и мне нужно, чтобы кто-то изменил код, чтобы он работал на версии Metatrader4 "Market Execution". Пожалуйста, напишите мне предложение или любые вопросы на phasna@gmail.com.
Спасибо
Пол
Кто-нибудь знает, какой icustom-запрос использовать в советнике для этого индикатора?
У него только один буфер SetIndexBuffer( 0, TrStopLevel ); который используется для трейлинг-точек, стрелки рисуются ObjectSet как это подхватить в icustom statement?
MT4-LevelStop-Reverse-v2-1.mq4
Кто-нибудь знает icustom statement для использования в советнике для этого индикатора?
У него есть только один буфер SetIndexBuffer( 0, TrStopLevel ); который используется для следящих точек, стрелки рисуются ObjectSet как это подхватить в операторе icustom?
MT4-LevelStop-Reverse-v2-1.mq4Кто-нибудь может помочь?
Помогите мне разместить сделки между спредами!
Хорошо, спреды убивают некоторые пары. но есть ли возможность размещать сделки в середине спреда. Таким образом мы можем сэкономить пипсы и заработать больше денег. У меня есть этот код, можно ли изменить его так, чтобы ордер устанавливался на цену графика, а не на цену покупки?
void PlaceBuyOrder()
{
double BuyOrders, Lots;
double LowestBuy = 1000, HighestBuy;
if (BarTime != Time[0])
{
BarTime = Time[0];
TickPrice = 0;
TradeAllowed = true;
}
RefreshRates();
for (Order = OrdersTotal() - 1; Order >= 0; Order--)
{
if (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_BUY)
{
if (OrderOpenPrice() < LowestBuy) LowestBuy = OrderOpenPrice();
if (OrderOpenPrice() > HighestBuy) HighestBuy = OrderOpenPrice();
BuyOrders++;
}
}
}
if (TradeAllowed)
{
if (Ask >= HighestBuy + (TrendSpacing * Point))
{
// if (Multiplier)
if (Multiplier == 1)
Lots = NormalizeDouble(LotSize * MathPow(LotIncrement, BuyOrders), 2);
else
Lots = NormalizeDouble(LotSize + (LotIncrement * BuyOrders), 2);
}
if (Ask <= LowestBuy - (Spacing * Point))
{
// if (Multiplier)
if (Multiplier == 1)
Lots = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, BuyOrders), 2);
else
Lots = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * BuyOrders), 2);
}
if (Lots == 0)
{
// if (Multiplier)
if (Multiplier == 1)
Lots = NormalizeDouble(LotSize, 2);
else
Lots = NormalizeDouble(LotSize, 2);
}
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, TradeComment, Reference, Green);
Error = GetLastError();
if (Error != 0)
Write("Ошибка при открытии ордера BUY: " + ErrorDescription(Error) + " (C" + Error + ") Ask:" + Ask + " Slippage:" + Slippage);
else
{
TickPrice = Close[0];
TradeAllowed = false;
}
}
}
void PlaceSellOrder()
{
double SellOrders, Lots;
double HighestSell, LowestSell = 1000;
if (BarTime != Time[0])
{
BarTime = Time[0];
TickPrice = 0;
TradeAllowed = true;
}
RefreshRates();
for (Order = OrdersTotal() - 1; Order >= 0; Order--)
{
if (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_SELL)
{
if (OrderOpenPrice() > HighestSell) HighestSell = OrderOpenPrice();
if (OrderOpenPrice() < LowestSell) LowestSell = OrderOpenPrice();
SellOrders++;
}
}
}
if (TradeAllowed)
{
if (Bid <= LowestSell - (TrendSpacing * Point))
{
// if (Multiplier)
if (Multiplier == 1)
Lots = NormalizeDouble(LotSize * MathPow(LotIncrement, SellOrders), 2);
else
Lots = NormalizeDouble(LotSize + (LotIncrement * SellOrders), 2);
}
if (Bid >= HighestSell + (Spacing * Point))
{
// if (Multiplier)
if (Multiplier == 1)
Lots = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, SellOrders), 2);
else
Lots = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * SellOrders), 2);
}
if (Lots == 0)
{
// if (Multiplier)
if (Multiplier == 1)
Lots = NormalizeDouble(LotSize, 2);
else
Lots = NormalizeDouble(LotSize, 2);
}
OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, TradeComment, Reference, Red);
Error = GetLastError();
if (Error != 0)
Write("Ошибка при открытии ордера SELL: " + ErrorDescription(Error) + " (D" + Error + ") Bid:" + Bid + " Slippage:" + Slippage);
else
{
TickPrice = Close[0];
TradeAllowed = false;
}
}
}
Можно ли это сделать?
HELP~ только 1 ошибка, использую 3 часа, все еще не могу найти ее
я очень волнуюсь, потому что не могу найти, как исправить ошибку ниже
может ли кто-нибудь сказать мне, где ошибка? или помочь мне отладить, я прикрепил файлы, см. buttom~ ~
'\end_of_program' - несбалансированная левая скобка C:\Program Files\ MetaTrader\experts\scripts\delete_pending_SAM.mq4 (38, 2)
ЭТО ФАЙЛ СКРИПТА~ ~
//+------------------------------------------------------------------+
//| delete_pending.mq4 |
//| Copyright ?2004, MetaQuotes Software Corp. |
//+------------------------------------------------------------------+
#property copyright "Copyright ?2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property show_inputs
bool result;
extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE
//+------------------------------------------------------------------+
//| скрипт "удалить отложенный ордер" |
//+------------------------------------------------------------------+
int start()
{
for (int number=0; (number <= OrdersTotal()+1); number++ )
{for (int times=0; (times <= OrdersTotal()+1); times++ )
{if (OrderSelect(number,SELECT_BY_POS,MODE_TRADES) )
{if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) break;
if ((OverSymbolDel ==0)&& (Symbol()==OrderSymbol() ) delPending();
if (OverSymbolDel ==1) delPending();
}
else Print("Ошибка при выборе заказа ", GetLastError() ) ;
}
}
}
//+------------------------------------------------------------------+
void delPending()
{ OrderPrint();
int ticket =OrderTicket();
result=OrderDelete(ticket);
if (result==False) Print("Ошибка при удалении заказа ", GetLastError() );
}
За чивинг
Попробуйте это:
#property link "http://www.metaquotes.net/"
#property show_inputs
bool result;
extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE
//+------------------------------------------------------------------+
//| script "delete pending order" |
//+------------------------------------------------------------------+
int start()
{
for (int number=OrdersTotal()-1; number >= 0; number--)
{
OrderSelect(number,SELECT_BY_POS,MODE_TRADES);
if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;
if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();
if (OverSymbolDel ==1) delPending();
}
}
//+------------------------------------------------------------------+
void delPending()
{
OrderPrint();
int ticket =OrderTicket();
result=OrderDelete(ticket);
if (!result) Print("Error when delete Order ", GetLastError() );
}На чивинг
Попробуйте это:
#property link "http://www.metaquotes.net/"
#property show_inputs
bool result;
extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE
//+------------------------------------------------------------------+
//| script "delete pending order" |
//+------------------------------------------------------------------+
int start()
{
for (int number=OrdersTotal()-1; number >= 0; number--)
{
OrderSelect(number,SELECT_BY_POS,MODE_TRADES);
if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;
if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();
if (OverSymbolDel ==1) delPending();
}
}
//+------------------------------------------------------------------+
void delPending()
{
OrderPrint();
int ticket =OrderTicket();
result=OrderDelete(ticket);
if (!result) Print("Error when delete Order ", GetLastError() );
}спасибо за помощь~ ~
и я нашел свою ошибку :
{if (OrderSelect(number,SELECT_BY_POS,MODE_TRADES) )
измените на
OrderSelect(number,SELECT_BY_POS,MODE_TRADES);
{if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) break;
изменить на
if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) countinue;