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

 

Я уже писал на FF и теперь на форуме MQL, так что попытаю счастья здесь.

Прежде чем начать, я хочу упомянуть, что я ни в коем случае не кодер, а всего лишь скрипт-кидди. Мне удалось сохранить цену в реальном времени в excel с временной меткой. Есть ли способ сохранять данные только тогда, когда цена движется? Потому что excel сохраняет данные каждые секунды, а значит, будет много пустых мест с временной меткой.

Есть ли способ сделать так, чтобы при прохождении каждой минуты переходить к следующему столбцу и сохранять данные оттуда? Я использую xlsapp для кодирования. Вот код:

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

//| Test1.mq4 |

//| Copyright 2015, MetaQuotes Software Corp. |

//| / |

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

#property copyright "Copyright 2015, MetaQuotes Software Corp."

#property link "https://www.mql5.com"

#property version "1.00"

#property strict

#include

extern string StartBid= "C3";

extern string StartAsk= "D3";

extern string StartSpread="F3";

extern string StartTime="A3";

bool xlsgateok=false;

string StrBid;

string StrAsk;

string StrSpread;

string StrTime;

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

//| Функция инициализации эксперта |

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

int OnInit()

{

StrBid=StartBid;

StrAsk=StartAsk;

StrSpread=StartSpread;

StrTime=StartTime;

if (ExcelInit("mt4") && ExcelStart(""))

{

Print("XLSgate init done");

xlsgateok=true;

Print("Версия Office = "+ExcelVersion());

ExcelSheetAdd("MT4");

}

//---

return(INIT_SUCCEEDED);

}

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

//| Функция деинициализации эксперта | |

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

void OnDeinit(const int reason)

{

//---

}

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

//| Функция экспертного тика |

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

double lastBid=0;

double lastAsk=0;

int lastSpread=0;

datetime time=0;

void OnTick()

{

//---

if(xlsgateok && lastBid!=Bid)

ExcelSetValue(StrBid,Bid);

lastBid=Bid;

StrBid=ExcelRowAdd(StrBid,1);

if(xlsgateok && lastAsk!=Ask)

ExcelSetValue(StrAsk,Ask);

lastAsk=Ask;

StrAsk=ExcelRowAdd(StrAsk,1);

ExcelSetValue(StrSpread,(Ask-Bid)/Point);

StrSpread=ExcelRowAdd(StrSpread,1);

string s= TimeToStr(TimeCurrent());

ExcelSetString(StrTime,s);

StrTime=ExcelRowAdd(StrTime,1);

}

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

 
mladen:
henrykfx Они никогда не будут одинаковыми просто потому, что индикатор, который вы разместили, перерисовывается. Они не могут быть одинаковыми

Miaden, пожалуйста, перекрашивает он или нет, просто сделайте мне одолжение и включите всплывающее уведомление и звуковое оповещение, и позвольте мне горевать или радоваться этому; в конце концов, яд одного человека - мясо другого, а мясо одного человека - яд другого. Если вы можете без труда помочь другим, я не вижу причин, почему мой собственный случай должен быть табу. Пожалуйста, сделайте это для меня, даже если это будет ваш подарок на Рождество, я буду очень признателен. Чем больше вы медлите, тем больше вы лишаете меня возможности торговать.

 
henrykfx:
Miaden, пожалуйста, перерисовывается он или нет, просто сделайте одолжение и включите всплывающее уведомление и звуковое оповещение, и позвольте мне горевать или радоваться этому; в конце концов, яд одного человека - мясо другого, а мясо одного человека - яд другого. Если вы можете без труда помочь другим, я не вижу причин, почему мой собственный случай должен быть табу. Пожалуйста, сделайте это для меня, даже если это будет ваш подарок на Рождество, я буду очень признателен. Чем больше вы медлите, тем больше вы лишаете меня возможности торговать.

Я не кодирую алерты для перерисовывающихся индикаторов. Посмотрите, например, эту тему: https: //www.mql5.com/en/forum/180648 и увидите, сколько раз я отказывался это делать и сколько раз я говорил, что использование перерисовывающихся индикаторов в режиме сигналов/алертов очень опасно. Так что вы не исключение, но ваша просьба - это правило для меня: я не хочу принимать участие в том, что считаю опасным для трейдеров.

всего наилучшего

 

Последняя просьба!

Ко всем кодировщикам, но с особой благодарностью к mladen. Не только за его кодирование, но и за его пациентов в многочисленных, и иногда глупых, просьбах, которые я делал на протяжении многих лет. Спасибо, товарищи. Это действительно очень ценно.

Могу ли я попросить вас о последней вещи?

Не могли бы вы добавить функцию волнового оповещения к нижней линии оповещения на прилагаемом индикаторе "Advanced ADX"?

Выбор пользователем Wav. звука?

Чтобы функция срабатывала ТОЛЬКО на растущем баре.

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

Файлы:
 
Jeeves:
Всем кодерам, но с особой благодарностью mladen. Не только за его кодирование, но и за его пациентов в многочисленных, и иногда глупых, просьбах, которые я делал в течение многих лет. Спасибо, товарищи. Это действительно очень ценно.

Могу ли я попросить вас о последнем?

Не могли бы вы добавить функцию волнового оповещения к нижней линии оповещения на прилагаемом индикаторе ADX?

Выбор пользователем Wav. звука?

Чтобы функция срабатывала ТОЛЬКО на растущем баре.

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

Дживс

Будет сделано

 

Ты - человек, мой друг. Все, что я могу сделать для тебя, пиши мне.

 
mrtools:
Здравствуйте Henrykfx, как я уже говорил, индикатор CROSS - это перерисовывающийся индикатор EMA cross, если вы перейдете по ссылке, которую я предоставил, и скачаете этот индикатор, установите MaType на EMA, период быстрой Ma на 5, а период медленной Ma на 20, то вы получите реальные значения EMA cross без перерисовки стрелок на закрытом баре, и с алертами.

Хорошо, mrtools, спасибо за ваш интерес к моей проблеме. Теперь я получил то, что хотел, но проблема в том, что он подает звуковые сигналы и всплывает на следующем баре. Не могли бы вы помочь мне исправить эту ошибку. чтобы сигналы и всплывающие уведомления были тогда и тогда, когда есть сигнал покупки или продажи.Спасибо за ваше время.

Файлы:
 
mladen:
Я не кодирую оповещения для индикаторов REPAINTING. Посмотрите, например, эту тему: https: //www.mql5.com/en/forum/180648 и увидите, сколько раз я отказывался это делать и сколько раз я говорил, что использование перерисовывающихся индикаторов в режиме сигнализации/оповещения очень опасно. Так что вы не исключение, но ваша просьба - это правило для меня: я не хочу участвовать в том, что я считаю опасным для трейдеров. Всего наилучшего.

Спасибо за откровенный ответ. В моих неустанных поисках я нашел одну полезную программу, но она предупреждает и уведомляет при открытии нового бара. Не могли бы вы помочь мне исправить ошибку, чтобы предупреждать и уведомлять только при наличии сигнала ПОКУПКИ И ПРОДАЖИ. Спасибо за ваше время.

Файлы:
 
henrykfx:
Спасибо за откровенный ответ. В моих неустанных поисках я нашел один полезный индикатор, но он предупреждает и уведомляет при открытии нового бара. Не могли бы вы помочь мне исправить ошибку, чтобы предупреждать и уведомлять только при наличии сигнала BUY OR SELL. Спасибо за ваше время.

henrykfx

Этот индикатор тоже использует будущие значения (перерисовки) - он использует точно такую же логику, как и предыдущий, о котором мы говорили.

всего наилучшего

 
mladen:
henrykfx

Этот индикатор тоже использует будущие значения (перерисовки) - он использует точно такую же логику, как и предыдущий, о котором мы говорили.

всего наилучшего

Младен, Вы на днях сказали, что 99% индикаторов не перерисовываются. Вы везде пишете "перерисовывает, перерисовывает, перерисовывает".