Мультитаймфреймовые индикаторы - страница 1132
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет, кто-нибудь знает, есть ли MTF версия индикатора PVT (тренд цены и объема)... Я знаю, что есть Dynamic zone PVT, но он не MTF...
Спасибо за любую помощь....
Не смог найти такой, поэтому добавил mtf в эту версию.
Не смог найти ни одного, поэтому добавил mtf к этой версии
Не смог найти ни одного, поэтому добавил mtf к этой версии.
Уважаемый mladen,
Надеюсь, у вас все хорошо.
Я пытался сделать советника на основе индикатора ZZ... Я могу открыть ордер на покупку, когда индикатор ZZ получает значение; но ордер не закрывается...
Вы можете мне помочь?
Заранее спасибо...
int MagicN =1453;
extern int Barras=5; // Cantidad de barras
extern int y =5;
//--------------------------------------------------------------------
extern double Lots = 0.01;
extern double Slippage = 3;
extern double Period1 = 5;
extern string Dev_Step_1 = "0,5";
extern int Symbol_1_Kod =140;
//--------------------------------------------------------------------
bool GV_Flag_NuevaBarra=false; // Flag de una nueva barra
//======================================================================
int start() // Специальная функция start()
{
//--------------------------------------------------------------------
Fun_NuevaBarra(); // Вызов функции
if (GV_Flag_NuevaBarra==false) // Si no hay nueva barra...
return; // ..return
//=========================================================================
int IndMin =ArrayMinimum(Low,Barras,1);
int IndMax =ArrayMaximum(High,Barras,1);
double ZZ, CC;
double Buy=Low[IndMin];
double XX=High[IndMax];
ZZ=iCustom(Symbol(),0, "3_Level_ZZ_Semafor",Period1,Dev_Step_1,Symbol_1_Kod,0,y);
CC=iCustom(Symbol(),0, "3_Level_ZZ_Semafor",Period1,Dev_Step_1,Symbol_1_Kod,1,y);
if (Buy == ZZ)
{
Alert(Symbol(),": Barras= ",Barras,", ZZ= ",DoubleToString(ZZ,Digits),", Precio= ",DoubleToString(Buy,Digits) );
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0, "Jeaa",MagicN,0,Blue);
Print ("Orden de Compra enviada: xxxx");// falta colocar el OrderTicket()
}
//=========================================================================
if (XX == CC)
{
if(OrderMagicNumber()== MagicN)
{ //---- проверка типа заказа
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
Alert(Symbol(),": Barras= ",Barras,", CC= ",DoubleToString(CC,Digits),", Precio= ",DoubleToString(XX,Digits) );
Print ("=====ORDEN CERRADA=====");
}
}
}
//=============================================================================
return;
}
//=========================================================================
void Fun_NuevaBarra() // Описание функции, которая обнаруживает ...
{ // ... una nueva barra
static datetime NewTime=0; // переменная, которая запоминает время и время суток
GV_Flag_NuevaBarra=false; // Inicializa nueva barra a falso (no hay nueva barra)
if(NewTime!=Time[0]) // Si existe nueva barra el dato es distinto de cero...
{
NewTime=Time[0]; //... y en ese caso se registra el hora y fecha de la...
GV_Flag_NuevaBarra=true; //nueva barra y se activa el flag que señaliza la...
//existencia de una nueva barra
}
}
//--------------------------------------------------------------------
Насколько я понимаю, вы тестируете неверное условие.
Значения для буфера 1 и слишком 3_Level_ZZ_Semafor не могут быть одинаковыми (они отображаются в разных местах)
Пожалуйста, уважаемый сэр
Измените код на следующий:
спасибо, дорогой друг, младен.
Большое спасибо за вашу помощь.
Измените код на следующий :
дорогой младен
Код не работает, у него есть ошибка. Я изменил "input" на "extern" для"MA_TF".
После этого он заработал, но проблема осталась.Я имею в виду, что он не сдвигает (переносит) индикатор в конец графика. положительный сдвиг не работает.
но отрицательный работает хорошо.
Еще раз спасибо.
дорогой Младен
код не работает.в нем есть ошибка.я изменил "input "на "extern" для"MA_TF".
После этого все заработало, но проблема осталась.Я имею в виду, что он не сдвигает (переносит) индикатор в конец графика. положительный сдвиг не работает.
но отрицательный работает хорошо.
Еще раз спасибо.
Все работает без проблем
Я не знаю, что вы тестировали, но вот что я использовал для тестирования (прилагаю), и вот как выглядит результат теста (включен как положительный, так и отрицательный тест). Итак, все работает, как ожидалось и описано
Работает без проблем
Я не знаю, что вы тестировали, но вот что я использовал для тестирования (прилагаю), и вот как выглядит результат теста (включены как положительный, так и отрицательный тест). Итак, все работает, как ожидалось и описано
ДОРОГОЙ МЛАДЕН
ВЫ ПРАВЫ, ЭТО БЫЛА МОЯ ОШИБКА.
ЕЩЕ РАЗ БОЛЬШОЕ СПАСИБО, МОЙ ДРУГ, ЗА ВАШУ ПОМОЩЬ.
Насколько я понимаю, вы проверяете неверное условие.
Значения для буфера 1 и слишком 3_Level_ZZ_Semafor не могут быть одинаковыми (они отображаются в разных местах)
Уважаемый mlanden...
Спасибо за ваши комментарии...
Я модифицировал советника для использования MagicNumber... но пользовательский индикатор заполняет всю память:
2016.09.18 00:33:10.627 Недостаточно памяти для 1039 баров для пользовательского индикатора 3_Level_ZZ_Semafor EURUSD,M5
Что я могу сделать? Спасибо заранее... Хесус...
//+------------------------------------------------------------------+
//|MA_jeaa_EA.mq4 |
//+------------------------------------------------------------------+
#property copyright "Jesus Acedo"
//--- входные параметры ---
input double Lotes=0.01;
input int MagicNumber=1453;
input int Barras=5;
input int y=5;
input double Period1= 5;
input string Dev_Step_1="0,5";
input int Symbol_1_Kod=140;
input int Slippage=3;
//+------------------------------------------------------------------+
//| Функция инициализации эксперта|
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Функция деинициализации эксперта|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Функция экспертного тика|
//+------------------------------------------------------------------+
void OnTick()
{
//---
long TicketEnUso = Ticket();
if (TicketEnUso>0) // significa que hay una operación... debo controlar salida...
{
if (OrderSelect(TicketEnUso,SELECT_BY_TICKET, MODE_TRADES))
{
if (OrderType()==OP_BUY) // buscar una salida por debajo de un promedio
{
if (Open[y]==ZZ(Period1)) Cierre(TicketEnUso);
}
if (OrderType()==OP_SELL) // buscar una salida por encima de un promedio
{
if (Close[y]==CC(Period1)) Cierre(TicketEnUso);
}
}
}
if (TicketEnUso<1) // no hay operación debo revisar si hay trade posible
{
if (Close[y]==CC(Period1))
{
Abre(OP_BUY);
Alert(Symbol(),": Barras= ",Barras,", ZZ= ",DoubleToString(ZZ(Period1),Digits),", Precio= ",DoubleToString(Close[y],Digits));
Print ("===КОМПРА===");
}
if (Open[y]==ZZ(Period1))
{
Abre(OP_SELL);
Alert(Symbol(),": Barras= ",Barras,", CC= ",DoubleToString(CC(Period1),Digits),", Precio= ",DoubleToString(Open[y],Digits));
Print ("===ВЕНТА===");
}
}
}
//==============================================================================================
double ZZ (int Periodos)
{
return (iCustom(Symbol(),0, "3_Level_ZZ_Semafor",Periodos,Dev_Step_1,Symbol_1_Kod,1,y));
}
double CC (int Periodos)
{
return (iCustom(Symbol(),0, "3_Level_ZZ_Semafor",Periodos,Dev_Step_1,Symbol_1_Kod,0,y));
}
//==============================================================================================
long Ticket()
{
for (int o=0; o<OrdersTotal(); o++)
{
if (OrderSelect(o,SELECT_BY_POS,MODE_TRADES))
{
if (MagicNumber == OrderMagicNumber()) return(OrderTicket());
}
}
return(0);
}
void Abre(int Tipo)
{
if (AccountFreeMargin()<(1000*Lotes))// filtro operaciones que no podria correr por falta de margen disponible
{
Print ("No hay dinero disponible. Свободная маржа= ",AccountFreeMargin());
return;
}
// seleccionar precio por operación
double Precio=0;
if(Tipo==OP_BUY) Precio=Ask; else Precio=Bid;
ResetLastError();
if (OrderSend(NULL,Tipo,Lotes,Precio,Slippage,0,0,NULL,MagicNumber,0,clrNONE)<1) Print (GetLastError());// 10 es fracciones de pips...
}
void Cierre(long TicketNo)
{
double Precio=0;
if (OrderSelect(TicketNo,SELECT_BY_TICKET,MODE_TRADES))
{
if(OrderType()==OP_BUY) Precio=Bid; else Precio=Ask;//selecciono precio de salida segun tipo de operación
ResetLastError();//reseteo número de error
if(OrderClose(TicketNo,Lotes,Precio,Slippage,clrNONE)) Print(GetLastError());//si al cerrar manda error que lo imprima
}
}
//======================================================================