Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
stevenpun Вы говорите, что покупка имеет 0.1 лот + 0.2 лота, а продажа должна быть 0.4 лота. Не могли бы вы уточнить это?
Здравствуйте, mladen, извините за поздний ответ.
Потому что болел несколько дней.
Я сделал картинку.
Например, когда на покупку открыто 2 ордера (0.1 Lot + 0.2 Lot ), но вдруг поезд изменился на продажу.
Ea откроет продажу на 0.1 лота, но я хочу, чтобы она открылась на 0.4 лота.
Возможно ли это изменить?
Еще раз здравствуйте,
Я пробовал использовать вышеуказанную функцию с комментарием, но она отображала только Max. Можете ли вы помочь с двумя функциями. Одна отображает непосредственную цену линии выше Bid, а вторая - линию ниже Bid. Спасибо.
Вот код.
//+------------------------------------------------------------------+
//| SimpleGrid.mq4+
//+------------------------------------------------------------------+
#include
#include
#property strict
// экспортируемые переменные
extern string GridStartingPrice = " Начальная цена для размещения линий ";
extern double GSP = 0.0;
extern int GR = 5;
extern double GridStep = 5;
extern color CGL = Золотой;
extern color BGL = Green;
extern color SGL = Red;
extern bool ClearAllObjects = False;
// локальные переменные
double PipValue = 1; // эта переменная здесь для поддержки 5-значных брокеров
bool Terminated = false;
string LF = "\n"; // используйте это в пользовательских или утилитных блоках, где вам нужны переводы строк
int NDigits = 4; // используется в основном для NormalizeDouble в блоках типа Flex
int ObjCount = 0; // подсчет всех объектов, созданных на графике, позволяет создавать объекты с уникальными именами
int current = 0;
int init()
{
NDigits = Digits;
if (false) ObjectsDeleteAll(); // очистить график
Comment(""); // очистить график
return(0);
}
// начало работы эксперта
int start()
{
if (Bars < 10)
{
Комментарий("Недостаточно баров");
return (0);
}
if (Terminated == true)
{
Комментарий("Советник прекратил работу.");
return (0);
}
OnEveryTick7();
return (0);
}
void OnEveryTick7()
{
PipValue = 1;
if (NDigits == 3 || NDigits == 5) PipValue = 10;
CentreGridLine();
}
void CentreGridLine()
{ if (ObjectFind("CGL") == (-1) )
{
{
string objName = "CGL" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0],GSP);
ObjectSet(objName, OBJPROP_PRICE1, GSP);
ObjectSet(objName, OBJPROP_COLOR, CGL);
}
TradeLine();
UprBnd();
LwrBnd();
}
}
void TradeLine()
{
int i;
double GridStep1= (GridStep*2);
double BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;
double SGSP= (GSP-((GridStep/2)*PipValue*Point));
double BBGSP= (BGSP-((GridStep*(GR))*PipValue*Point)) ;
double SSGSP= (SGSP+((GridStep*(GR))*PipValue*Point));
{
for(i=0; i<GR;i++)
{
SGL("Sell "+i,BBGSP+GridStep1*i*PipValue*Point);
}
}
{
for(i=0; i<GR;i++)
{
BGL("Buy "+i,SSGSP-GridStep1*i*PipValue*Point);
}
}
}
void BGL(string objName, double price)
{
ObjectCreate(objName, OBJ_HLINE, 0, 0, цена);
ObjectSet(objName, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(objName, OBJPROP_WIDTH, 1);
ObjectSet(objName, OBJPROP_COLOR, BGL);
}
void SGL(string objName, double price)
{
ObjectCreate(objName, OBJ_HLINE, 0, 0, 0, price);
ObjectSet(objName, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(objName, OBJPROP_WIDTH, 1);
ObjectSet(objName, OBJPROP_COLOR, SGL);
}
void UprBnd()
{ if (ObjectFind("UPRBND") == (-1) )
{
double BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;
double price= (BGSP+((GridStep*(GR))*PipValue*Point)) ;
string objName = "UPRBND" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0], price );
ObjectSet(objName, OBJPROP_PRICE1,price);
ObjectSet(objName, OBJPROP_COLOR, DodgerBlue);
ObjectSet(objName, OBJPROP_WIDTH,3);
}
}
void LwrBnd()
{ if (ObjectFind("LWRBND") == (-1) )
{
double SGSP= (GSP-((GridStep/2)*PipValue*Point));
double price= (SGSP-((GridStep*(GR))*PipValue*Point));
string objName = "LWRBND" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0], price );
ObjectSet(objName, OBJPROP_PRICE1,price);
ObjectSet(objName, OBJPROP_COLOR, Tomato);
ObjectSet(objName, OBJPROP_WIDTH, 3);
}
}
int deinit()
{
if (ClearAllObjects) ObjectsDeleteAll();
return (0);
}
//+------------------------------------------------------------------+Hermes
Можете ли вы прикрепить файл mq4?
Гермес Можете ли вы прикрепить файл mq4?
Вот он. Спасибо
Привет,
Мне нужна помощь с Ea, которую я сделал, она связана с 2 скользящими средними и 2 различными таймфреймами для фильтрации тренда, я хотел бы добавить индикатор RSI, чтобы фильтровать сделки, настройка, например, RSI период 8 уровень 50, если выше уровня RSI 50 при пересечении мы открываем только рыночные ордера на продажу, если ниже уровня RSI 50 при пересечении мы открываем только рыночные ордера на покупку. Я прилагаю Ea, сначала он был связан с keltnerchannels, но теперь я хочу, чтобы он использовался только как Ma1 и Ma2.
Может ли кто-нибудь помочь мне с этими изменениями?
Спасибо
Вот оно. Спасибо
Гермес
Попробуйте это: simpleg_1.mq4
Привет,
Мне нужна помощь с Ea, которую я сделал, она связана с 2 скользящими средними и 2 различными таймфреймами для фильтрации тренда, я хотел бы добавить индикатор RSI, чтобы фильтровать сделки, настройка, например, RSI период 8 уровень 50, если выше уровня RSI 50 при пересечении мы открываем только рыночные ордера на продажу, если ниже уровня RSI 50 при пересечении мы открываем только рыночные ордера на покупку. Я прилагаю Ea, сначала он был связан с keltnerchannels, но теперь я хочу, чтобы он использовался только как Ma1 и Ma2.
Может ли кто-нибудь помочь мне с этими изменениями?
Спасибоdaniel1983
Почти наверняка вы никогда не получите пересечений mas и rsis одновременно (что означает - вы почти никогда не получите сигналов). Попробуйте: сделайте простой индикатор, который делает то, что вы описали, и вы увидите, как редко эти условия происходят одновременно.
daniel1983 Почти наверняка вы никогда не получите пересечений mas и rsis одновременно (а значит - почти никогда не получите сигналов). Попробуйте: сделайте простой индикатор, который делает то, что вы описали, и вы увидите, насколько редко эти условия происходят одновременно.
Привет, Младен,
Я имею в виду
- на любом уровне от 0 до 50 только продавать
- на любом уровне между 50 и 100 только покупать,
не в этой же точке пересечения, пересечение может быть на любом уровне (43, 41, 18, 25) для рыночных ордеров на покупку, подтверждающих тренд более высокого таймфрейма. Я протестировал это и около 80% открытых ордеров, похоже, с этим фильтром не откроются в противоположном направлении.
Прямо сейчас Ea открывает ордер на покупку, когда пересечение начинает нисходящий тренд, с этим фильтром в 80% случаев он будет фильтровать это пересечение, не вводя ордер в этой точке. где пересекаются эти Ma.
В этом Ea я ввел более высокий таймфрейм, но я провел тест с лучшими результатами, используя более низкий таймфрейм для фильтрации тренда.
Я прилагаю картинку с примером настроенного теста:
Для EURUSD
В этом случае я использую EMA 2 и EMA 67, и RSI (8) таймфрейм 1мин и Hitimeframe 5мин, в этом случае у вас есть рыночный ордер на покупку, который является убыточным, этот рыночный ордер на покупку происходит при пересечении EMa's, но с RSI на уровне ниже 50.
Затем у вас есть рыночный ордер на продажу, который открывается на пересечении, но с RSI ниже 50, и этот ордер является правильным рыночным ордером, который я хочу отфильтровать от всех сигналов.
Возможно ли это сделать?
Спасибо
Даниэль
Гермес Попробуйте это : simpleg_1.mq4
Здравствуйте, Младен,
Наконец-то он работает, используя это. Спасибо
void LoopBS()
{
double max =(ObjectGet("UPRBND",OBJPROP_PRICE1));
double min =(ObjectGet("LWRBND",OBJPROP_PRICE1));
for (int i =ObjectsTotal()-1; i>=0; i--)
{
string name = ObjectName(i);
if (StringSubstr(name,0,3)=="Buy")
{
double BS=ObjectGet(name,OBJPROP_PRICE1);
if ((Ask<BS) && (BSmin))
{
max = ObjectGet(name,OBJPROP_PRICE1);
{
Comment(DoubleToStr(BS,Digits)," ");
}
}
}
}
}
Неточные сигналы
Неточные сигналы
Уважаемые, мастера! Не могли бы вы лучше подавать сигналы. М1, М5, М15
Неточные сигналы Уважаемые, мастера! Не могли бы вы лучше сигнализировать. М1, М5, М15
Он просто показывает, больше или меньше ли последние 3 закрытия, чем последние 3 открытия. Улучшать в этом нечего