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

 

спасибо за ваш ответ Роберт

такая приборная панель была бы идеальной, но я не нашел ни одной с bb squeeze, и я понятия не имею, как изменить существующие приборные панели для обнаружения на bb squeeze

Моя собственная идея была очень проста, она выглядела так:

int Current;

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

//| expert start function |

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

int start() {

int USDCHF, GBPUSD, EURUSD, AUDUSD;

double upperBB_USDCHF = iBands("USDCHF", 0, 20, 2, 0, PRICE_CLOSE, MODE_UPPER, Current + 0);

double upperKC_USDCHF = iCustom("USDCHF", 0, "Keltner Channels", 20, 0, Current + 0);

double lowerBB_USDCHF = iBands("USDCHF", 0, 20, 2, 0, PRICE_CLOSE, MODE_LOWER, Current + 0);

double lowerKC_USDCHF = iCustom("USDCHF", 0, "Keltner Channels", 20, 2, Current + 0);

if(upperBB_USDCHFlowerKC_USDCHF)

Comment(": BollingerSqueeze for USDCHF");

return(0);

}

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

это просто для нескольких разных пар, но, как я уже сказал, "Комментарий" обновляется все время.

редактировать: хорошо, я исправил это, помощь больше не требуется

 
crexsking:
Привет Младен и все остальные участники,

Я торгую паттерн графика с "большим движением свечи" (Open[0]-Close[0] > 32 пунктов или наоборот) и торгую eurusd (H1 на FXOpen <--- наиболее точный размер свечи и паттерн)...

Итак, не было абсолютно никаких индикаторов. Только философия торговли.

Я пытаюсь написать советник по этой логике, но мне кажется, что там чего-то не хватает... Пожалуйста, помогите!!!

Что значит "чего-то не хватает", что я имею в виду:

-я хочу, чтобы перед тем, как произойдет "большая свеча"... система рассчитывала последние 4 свечи < 20 пунктов (открытие - закрытие или наоборот) для каждой свечи.

Тогда как... что случилось, так это то, что моя кодировка mql4 не читает последние 4 свечи перед большой свечой... я так запутался...

Что должно происходить:

1. Время для большой свечи :-

- 3pm, 4pm, 5pm (London Open) ..n... 8pm, 9pm, 10pm (US Open) <---- все время указано, так как я малаец, поэтому переключите свой компьютер на GMT 8.00++.

2. Большой размер свечи :-

- 32 пипса выше (если боковик до этого был 20 пипсов ниже)

- 42 пипса выше (если боковик перед этим на 20 пипсов выше)

3. Боковой рынок :-

- ниже 50 пунктов в течение последних минимум 4 часов и должен иметь другой цвет.

4. Пустой или опасный рынок (отмена рынка): <--- торговля запрещена при наступлении данного состояния рынка.

1. Боковой рынок до открытия Лондона B,B,B,B вверх или S,S,S,S вниз. <--- B,B,B,B = свечи Купить, купить, купить, купить... постоянно

2. Закрытие большой свечи на максимуме дневной зоны. <---- 75 пунктов минимум high low

3. Большая свеча возникает в 10 вечера. <----- GMT 8++ или время Малайзии

4. Большая свеча слишком большая и превышает 80 пунктов.

5. Есть свечи более чем на 50 пунктов до открытия Лондона.

6. Форма рынка восходящая на токийской сессии и большая свеча восходящая на открытии в Лондоне (наоборот для нисходящей).

Проблемы с кодировкой прилагаю :-

extern double trigger = 32;

extern double sideway = 20;

extern int hour1 = 6;

extern int hour2 = 7;

extern int hour3 = 8;

extern int hour4 = 9;

extern int hourCB = 10;

extern int hourTRADE = 11;

extern int TradeTimeStart = 0;

extern int TradeTimeEnd = 23;

//---Variables

double currentPrice = 0.00000;

static datetime barStart;

string openTrades = "none";

int ticket;

int i = 0;

double lotSize;

double CBB = 0;

double CBS = 0;

double CBBT;

double CBST;

double PreviousCBB;

double PreviousCBS;

double CS1B;

double CS2B;

double CS3B;

double CS4B;

double CS5B;

double CS6B;

double CS1S;

double CS2S;

double CS3S;

double CS4S;

double CS5S;

double CS6S;

double CS1BT;

double CS2BT;

double CS3BT;

double CS4BT;

double CS1ST;

double CS2ST;

double CS3ST;

double CS4ST;

double PreviousCS1B;

double PreviousCS2B;

double PreviousCS3B;

double PreviousCS4B;

double PreviousCS1S;

double PreviousCS2S;

double PreviousCS3S;

double PreviousCS4S;

double GroupSW1B;

double GroupSW2B;

double GroupSW3B;

double GroupSW4B;

double GroupSW5B;

double GroupSW6B;

double GroupSW1S;

double GroupSW2S;

double GroupSW3S;

double GroupSW4S;

double GroupSW5S;

double GroupSW6S;

string permit = "suspended";

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

//| expert initialization function |

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

int init()

{

//----

//----

return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| expert start function |

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

int start(){

CBB=(Close[1]-Open[1])/Point;

CBS=(Open[1]-Close[1])/Point;

CBBT=(hourCB==Hour());

CBST=(hourCB==Hour());

PreviousCBB = (CBB == CBBT);

PreviousCBS = (CBS == CBST);

CS1B=(Close[7]-Open[7])/Point;

CS2B=(Close[6]-Open[6])/Point;

CS3B=(Close[5]-Open[5])/Point;

CS4B=(Close[4]-Open[4])/Point;

CS5B=(Close[3]-Open[3])/Point;

CS6B=(Close[2]-Open[2])/Point;

CS1S=(Open[7]-Close[7])/Point;

CS2S=(Open[6]-Close[6])/Point;

CS3S=(Open[5]-Close[5])/Point;

CS4S=(Open[4]-Close[4])/Point;

CS5S=(Open[3]-Close[3])/Point;

CS6S=(Open[2]-Close[2])/Point;

CS1BT=(hour1==Hour());

CS2BT=(hour2==Hour());

CS3BT=(hour3==Hour());

CS4BT=(hour4==Hour());

CS1ST=(hour1==Hour());

CS2ST=(hour2==Hour());

CS3ST=(hour3==Hour());

CS4ST=(hour4==Hour());

PreviousCS1B = (CS1B == CS1BT);

PreviousCS2B = (CS2B == CS2BT);

PreviousCS3B = (CS3B == CS3BT);

PreviousCS4B = (CS4B == CS4BT);

PreviousCS1S = (CS1S == CS1ST);

PreviousCS2S = (CS2S == CS2ST);

PreviousCS3S = (CS3S == CS3ST);

PreviousCS4S = (CS4S == CS4ST);

GroupSW1B = (CS3B<sideway&&CS4S<sideway&&CS5B<sideway&&CS6S=trigger);

GroupSW1S = (CS3S<sideway&&CS4B<sideway&&CS5S<sideway&&CS6B=trigger);

currentPrice = iClose(NULL,0,0);

Comment("Price Continuation\n",

"Status: ",status()

);

//----Trade Algorithm

//trade hours value...

if(TradeTimeStart <= Hour() && Hour() <= TradeTimeEnd){

if(openTrades == "none" && permit == "approved"){

requestLongOrder();

requestShortOrder();

}

else{

requestPermit();

}

}

if(openTrades == "long"){

manageLongTrade();

}

if(openTrades == "short"){

manageShortTrade();

}

return(0);

}

//---FUNCTIONS---

//--

void requestLongOrder(){

if(hourTRADE==Hour() && GroupSW1B){

//--

Lots = CalcLots ();

ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,3,currentPrice-stopLoss,currentPrice+takeProfit,"My order ",06010,0,Green);

if(ticket<0){

//add email/sms alert here with GetLastError();

}

if(ticket>0){

openTrades = "long";

permit = "suspended";

}

}

}

void requestShortOrder(){

if(hourTRADE==Hour() && GroupSW1S){

//--

Lots = CalcLots ();

ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,3,currentPrice+stopLoss,currentPrice-takeProfit,"My order ",06010,0,Red);

if(ticket<0){

//add email/sms alert here with GetLastError();

}

if(ticket>0){

openTrades = "short";

permit = "suspended";

}

}

}

* что должно произойти, как на скриншоте.

Пожалуйста, помогите...

Спасибо...

С уважением,

crexsking

Привет Crexsking,

Единственное, о чем я могу подумать, это то, что вам может понадобиться конвертация для 5-значного брокера, после запуска поставьте что-то вроде этого

double pipMultiplier = 1; (перед запуском)

int start()

{

if (Digits==3 || Digits==5)

pipMultiplier = 10;

else pipMultiplier = 1;

И затем после каждой точки что-то вроде этого Point*pipMultiplier.

 

Как были решены проблемы с комментариями?

Deorn:
Спасибо за ваш ответ Роберт

такая приборная панель была бы идеальной, но я не нашел ее в bb squeeze, и я понятия не имею, как изменить существующие приборные панели для обнаружения на bb squeeze.

Моя собственная идея была очень проста, она выглядела так:

========

Это только для нескольких разных пар, но, как я уже сказал, "Комментарий" обновляется все время.

редактировать: хорошо я исправил это, помощь больше не требуется

Привет, Деорн,

Приятно слышать, что вы решили свою проблему. Не могли бы вы поделиться тем, что вы сделали, чтобы исправить обновление "комментария"...?

Успехов вам в кодировании...!

Роберт

 
cosmiclifeform:
Привет, Деорн,

Приятно слышать, что вы решили свою проблему. Не хотите поделиться тем, что вы сделали, чтобы исправить обновление "комментария"...?

Удачи вам в кодировании...!

Роберт

Я создал его с помощью 'objectcreate', как вы сказали.

Я реализовал его для таймфреймов от M5 до месячного на 10 различных парах:

Keltner Channels необходимы с точным названием 'Keltner Channels', я выбрал настройки 20 с фактором 1.5

оба являются двумя нормальными индикаторами

Я бы выбрал пустое окно, чтобы поместить это в

и извините за уродливое программирование, это мой первый собственный индикатор, но он делает свою работу

приветствую

Файлы:
 
mrtools:
Привет, Crexsking,

Единственное, о чем я могу подумать, это то, что вам может понадобиться конвертация для 5-значного брокера, после запуска поставьте что-то вроде этого

double pipMultiplier = 1; (перед запуском)

int start()

{

if (Digits==3 || Digits==5)

pipMultiplier = 10;

else pipMultiplier = 1;

А затем после каждой точки что-то вроде Point*pipMultiplier.

Привет, mrtools, спасибо...

Я сделаю это, но перед этим могу я спросить... какое отношение имеет конвертация с 5-значными брокерами?

Я имею в виду... до этого система не может распознать бычью или медвежью свечу на последних 4 свечах бокового рынка.

Если я поставлю этот код, система распознает его?

Извините за мой плохой английский...

с уважением,

crexsking

 
crexsking:
Привет, mrtools, спасибо...

Я сделаю это, но перед этим могу я спросить... какое отношение имеет конвертация с 5-значными брокерами?

Я имею в виду... до этого система не может распознать бычью или медвежью свечу на последних 4 свечах бокового рынка.

Если я поставлю этот код, система распознает его?

Извините за мой плохой английский...

привет,

crexsking

Crexsking, это приведет его к пунктам, так что если, например, у вас есть .91135 для открытия и .90685 для закрытия, разница составляет .0045, если вы находитесь на 5 цифр брокер пункт будет равен 450, потому что он делится на .00001, но если вы используете преобразование он правильно сделать это 45 пунктов, потому что вы тогда деления на .0001 или .00001 х 10.И что касается распознавания бычьей или медвежьей свечи действительно не могу сказать, потому что я не вижу ничего другого неправильно с вашим кодом.

 

Кодирование большого игрока... помогите пожалуйста...

\\\---- Отредактировано

Хорошо, сделано...

Проблема решена.

приветствую,

crexsking

 

Нужна помощь

Здравствуйте всем мастерам кодинга, мне нужна ваша помощь пожалуйста :

Как насчет кодирования если я хочу создать горизонтальные линии верхняя и нижняя граница на группе свечей (close - open) мала по значению. Значение (close - open)*100000 = без полярности и всегда положительное. Количество моих свечей внешнего содержания.

Пример:

extern int (close - open)*100000 = 10; // Его значение (close - open) <= 10

extern int Количество свечей максимум = 3;

"Верхняя граница горизонтальной линии" = берется от самого высокого значения open/close, присущего группе

"Горизонтальная линия нижний предел" = берется от самого высокого открытия/закрытия, присущего группе

С наилучшими пожеланиями,

Спасибо

Файлы:
 

...

Боюсь, я не совсем понимаю, что вы имеете в виду. поэтому отвечаю только на часть вашего вопроса.

Если вы умножите разницу 5-значного символа на 5-значном брокере на 100000, то вы получите желаемое значение, но если символ, например, один из кроссов JPY, то вы получите значения, которые намного превышают эти значения. Кроме того, на четырехзначных брокерах вы получите и большие значения. Чтобы избежать этого, лучше всего рассчитывать разницу в пунктах. Вот как вы можете это сделать:
double pipMultiplier = 1;

if (Digits==3 || Digits==5) pipMultiplier = 10;

//

//

// calculate the difference in pips

//

//

double difference = MathAbs((Close[shift] - Open[shift])/(Point*pipMultiplier));[/PHP]

И это всегда будет в пунктах, независимо от символа или брокера.

В качестве минимума и максимума вы можете узнать наименьшее низкое и наибольшее высокое значения диапазона баров с помощью следующего кода (в данном примере рассматривается диапазон из 3 баров, как вы и говорите) :
[PHP]double highest = High;

double lowest = Low;

paijowijaya:
Привет всем мастерам кодинга, мне нужна ваша помощь пожалуйста:

Как насчет кодирования, если я хочу создать горизонтальные линии, верхняя и нижняя границы на группе свечей (close - open) имеют небольшое значение. Значение (close - open)*100000 = без полярности и всегда положительное. Количество моих свечей внешнего содержания.

Пример:

extern int (close - open)*100000 = 10; // Его значение (close - open) <= 10

extern int Количество свечей максимум = 3;

"Верхняя граница горизонтальной линии" = берется от самого высокого значения open/close, присущего группе

"Горизонтальная линия нижний предел" = берется от самого высокого открытия/закрытия, присущего группе

С наилучшими пожеланиями,

Спасибо
 
mladen:
Боюсь, я не совсем понимаю, что Вы имеете в виду, поэтому отвечу лишь на часть Вашего вопроса. Если Вы умножите разницу 5-значного символа на 5-значном брокере на 100000, то Вы получите желаемое значение, но если символ является, например, одним из кроссов JPY, то Вы получите значения, которые намного превышают эти значения. Кроме того, на четырехзначных брокерах вы получите и большие значения. Чтобы избежать этого, лучше всего рассчитывать разницу в пунктах. Вот как это можно сделать:
double pipMultiplier = 1;

if (Digits==3 || Digits==5) pipMultiplier = 10;

// calculate the difference in pips

double difference = MathAbs((Close[shift] - Open[shift])/(Point*pipMultiplier));[/PHP]

:
[PHP]double highest = High;

double lowest = Low;

Большой сюрприз, я очень рад, что вы ответили на мой вопрос, мастер Младен,

Но, простите, я все еще в замешательстве, не могли бы вы дать полную кодировку? Значение * 100000 я имел в виду, чтобы быть легким в чтении, а не 0.0002 (4 цифры за запятой), но если у вас есть более легкий путь, я буду следовать вашему пути. По сути, когда найдены три свечи (зона баланса или покупатели = продавцы или боковая зона, у каждого ТФ свое количество свечей), которая мала (ее значение берется из разницы между Close - Open) я хочу провести горизонтальную линию, как на картинке, которую я загрузил. Чтобы с помощью линии я знал спрос и предложение на графике. Или есть ли такой индикатор у вас?

С наилучшими пожеланиями,

Спасибо, мастер Младен.

Причина обращения: