Помощь в кодировании - страница 280

 
rkhan1:
Mladen и Mr Tools

можете ли вы помочь мне сделать эту инди в виде отдельного окна внизу.

Trend Magic_mtf.mq4

Спасибо

rkhan1

Вот, пожалуйста: trend_magic_mtf_separate.mq4

Файлы:
 

привет Младен

У этого есть 1 магическая линия тренда, можете ли вы сделать его, чтобы иметь возможность 2-й магической линии тренда в том же инди, как кроссовер.

Спасибо

Файлы:
 
rkhan1:
привет Младен

Здесь есть 1 магическая линия тренда, можете ли вы сделать так, чтобы была возможность второй магической линии тренда в том же инди, как кроссовер.

Спасибо

Вот, пожалуйста: trend_magic_mtf_separate_2.mq4

Удачной торговли

Файлы:
 

Привет Младен

Есть проблема

Первый график, таймфрейм инди как текущий.

Второй график, таймфрейм недельный, но только 1 линия.

Спасибо

Файлы:
 
mrtools:
Farhad_1, это версия WAVE PM, которая у меня есть, и она работает на билде 646 для меня.

Еще раз спасибо Mrtools. Я читал книгу, но не могу понять, что должен показывать WAVE-PM, что означают красный и синий индикаторы и как их можно использовать. Если вы можете, пожалуйста, объясните мне это.

Заранее большое спасибо.

 
rkhan1:
Привет Младен

Есть проблема

Первый график, таймфрейм инди как текущий.

Второй график, таймфрейм недельный, но только 1 линия.

Спасибо

Попробуйте этот.

 
Farhad_1:
Еще раз спасибо Mrtools. Я читал книгу, но не могу понять, что должен показывать WAVE-PM, что означают красный и синий индикаторы и как их можно использовать. Если вы можете, пожалуйста, объясните мне это. Большое спасибо заранее.

Farhad_1, насколько я помню, это не индикатор направления, а скорее индикатор тренда или отсутствия тренда, если медленная и быстрая линии наклонены вверх, значит есть тренд, когда обе линии становятся в районе .7 и .9, есть большая вероятность того, что тренд остановится или закончится, а в районе .3 - .5 тренд либо возобновится, либо развернется. Итак, если посмотреть на часовой EurUsd сейчас, медленная линия наклонена вверх, а быстрая линия в районе .3 и .5 выглядит так, как будто она тоже хочет наклониться вверх, так что какой бы тренд ни был на часовом графике, возможно, скоро начнется обратный рост.

Файлы:
wave_pm.png  56 kb
 
mrtools:
Farhad_1, насколько я помню, это не направленный индикатор, скорее индикатор тренда или отсутствия тренда, если медленная и быстрая линии наклонены вверх, значит есть тренд, когда обе линии в районе .7 и .9, есть большая вероятность того, что тренд остановится или закончится, а в районе .3 - .5 тренд либо возобновится, либо развернется. Итак, если сейчас посмотреть на часовой EurUsd, медленная линия наклонена вверх, а быстрая линия в районе .3 и .5 выглядит так, как будто она тоже хочет наклониться вверх, так что какой бы тренд ни был на часовом графике, возможно, скоро начнется обратный рост.

Спасибо, Mrtools. Нужно немного привыкнуть к этому индикатору.

 

Работает отлично

Мистер Инструменты

Г-н Младен

Я приветствую вас обоих за ваше время и опыт.

С уважением,

 
mladen:
Вы можете сделать что-то вроде этого:
double minprice = +99999999999;

for(int i =- 0; i<ObjectsTotal(); i++)

{

string name = ObjectName(i);

if (ObjectType(name) == OBJ_HLINE) MathMin(ObjectGet(name,OBJPROP_PRICE1),minprice);

}

Здравствуйте еще раз,

Я попытался использовать вышеуказанную функцию с комментарием, но она отображает только 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);

}

//+------------------------------------------------------------------+