[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 456

 
sergeev писал(а) >>

сделайте из него не скрипт а эксперт и контролируйте время исполнения функции-кода скрипта в эксперте. Пришло время - выполняем код скрипта.

по этой фразе я понял, что у вас терминалы закрыты. я вам и отвечаю - скрипт не может сам запустить терминал.

Как пишете так и понимают. Если это не то что вы имеете ввиду, то объясняйтесь четче.

а в чём ценность идеи? если бы он был так нужен, неужели бы прогер какой-нить не настрочил бы давно сие дело... это нужно лично для вас.

1. Копируем содержание скрипта

2. Создаем через MetaEditor новый советник

3. Вставляем код скрипта

4. Как дописать фукцию работы по времени и куда ее вставить (не програмист я)

Нужна фукция время работы с 9-00 до 9-01

код скрипта который будем редактировать: (За ранее спасибо всем кто поможет)

#property copyright "Ким Игорь В. aka KimIV"
#property link "https://www.mql5.com/go?link=http://www.kimiv.ru/"
#property show_inputs

#import "kernel32.dll"
int GetUserDefaultLCID();
int GetLocaleInfoA(
int Locale, // locale identifier
int LCType, // type of information
string lpLCData, // address of buffer for information
int cchData // size of buffer
);
#import

//+------ Внешние параметры скрипта -------------------------------------------+
extern bool bCommission = False; // Выгружать комиссии
extern bool bSwap = True; // Выгружать свопы
extern bool bComment = True; // Выгружать комментарий
extern bool bMagic = True; // Выгружать MagicNumber

// LCTYPE Constants
#define LOCALE_SDECIMAL 0x000E // Characters used for the decimal separator.

//+----------------------------------------------------------------------------+
//| script program start function |
//+----------------------------------------------------------------------------+
void start() {
int dg, i, k=OrdersHistoryTotal();
string FileName=DoubleToStr(AccountNumber(), 0)+".csv", st;

FileDelete(FileName);
st="Ticket;Open Time;Type;Lots;Item;Price;SL;TP;Close Time;Price";
if (bCommission) st=st+";Commission";
if (bSwap) st=st+";Swap";
st=st+";Profit";
if (bMagic) st=st+";Magic";
if (bComment) st=st+";Comment";
WritingLineInFile(FileName, st);
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderType()<2) {
dg= MarketInfo(OrderSymbol(), MODE_DIGITS);
st= DoubleToStr(OrderTicket(), 0)+";";
st=st+TimeToStr(OrderOpenTime(), TIME_DATE|TIME_MINUTES)+";";
st=st+GetNameOP(OrderType())+";";
st=st+DoubleToStrLocale(OrderLots(), 2)+";";
st=st+OrderSymbol()+";";
st=st+DoubleToStrLocale(OrderOpenPrice(), dg)+";";
st=st+DoubleToStrLocale(OrderStopLoss(), dg)+";";
st=st+DoubleToStrLocale(OrderTakeProfit(), dg)+";";
st=st+TimeToStr(OrderCloseTime(), TIME_DATE|TIME_MINUTES)+";";
st=st+DoubleToStrLocale(OrderClosePrice(), dg)+";";
if (bCommission) st=st+DoubleToStrLocale(OrderCommission(), 2)+";";
if (bSwap) st=st+DoubleToStrLocale(OrderSwap(), 2)+";";
st=st+DoubleToStrLocale(OrderProfit(), 2)+";";
if (bMagic) st=st+DoubleToStr(OrderMagicNumber(), 0)+";";
if (bComment) st=st+OrderComment()+";";
WritingLineInFile(FileName, st);
}
Comment("Прочитано: ",i+1," сделок из ",k);
}
}
Comment("Записан файл: ",FileName);
}

//+----------------------------------------------------------------------------+
//| Выполняет преобразование числового значения в строку с системным |
//| разделителем целой и дробной частей. |
//| Параметры: |
//| v - число типа double |
//| d - количество знаков после запятой |
//+----------------------------------------------------------------------------+
string DoubleToStrLocale(double v, int d) {
if (d<0) d=0;
if (d>8) d=8;

string se=GetUserLocale(LOCALE_SDECIMAL), st=DoubleToStr(v, d);
if (se!=".") st=StrTran(st, ".", se);

return(st);
}

//+----------------------------------------------------------------------------+
//| Возвращает наименование торговой операции |
//| Параметры: |
//| op - идентификатор торговой операции |
//+----------------------------------------------------------------------------+
string GetNameOP(int op) {
switch (op) {
case OP_BUY : return("Buy");
case OP_SELL : return("Sell");
case OP_BUYLIMIT : return("Buy Limit");
case OP_SELLLIMIT: return("Sell Limit");
case OP_BUYSTOP : return("Buy Stop");
case OP_SELLSTOP : return("Sell Stop");
default : return("Unknown Operation");
}
}

//+----------------------------------------------------------------------------+
//| Return of user regional settings. |
//| Parameters: |
//| LCType - type of regional setting (LCTYPE Constant) |
//+----------------------------------------------------------------------------+
string GetUserLocale(int LCType) {
int loc=GetUserDefaultLCID();
string str=" ";

GetLocaleInfoA(loc, LCType, str, 64);

return(str);
}

//+----------------------------------------------------------------------------+
//| Замена подстроки |
//| Параметры: |
//| str - текстовая строка, в которой производится замена |
//| strfrom - заменяемая подстрока |
//| strto - заменяющая подстрока |
//+----------------------------------------------------------------------------+
string StrTran(string str, string strfrom, string strto) {
int n;
string outstr="", tempstr;

for (n=0; n<StringLen(str); n++) {
tempstr=StringSubstr(str, n, StringLen(strfrom));
if (tempstr==strfrom) {
outstr=outstr+strto;
n=n+StringLen(strfrom)-1;
} else outstr=outstr+StringSubstr(str, n, 1);
}
return(outstr);
}

//+----------------------------------------------------------------------------+
//| Запись строки в файл |
//| Параметры: |
//| FileName - имя файла |
//| text - строка |
//+----------------------------------------------------------------------------+
void WritingLineInFile(string FileName, string text) {
int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " ");

if (file_handle>0) {
FileSeek(file_handle, 0, SEEK_END);
FileWrite(file_handle, text);
FileClose(file_handle);
}
}
//+----------------------------------------------------------------------------+

 
Добрый день! подскажите, в какую папку вставить шрифты в МТ4?
 
%windir% \ fonts
 

для baltik


string NeedTime="9:00";
datetime time0=0;

//----------------------------------------------------------------------------
void start() 
{

 if (time0>=StrToTime(NeedTime)) return; // если сегодня уже выполняли код
 if (TimeCurrent()<=StrToTime(NeedTime)) return; // если требуемое время ещё не наступио
 time0=TimeCurrent(); // иначе запоминаем время

// и делаем то что надо

// бла бла бла остальной код

ну а вообще эта ветка для тех, кто учится программированию, а не с просьбамим написать за вас.

 
sergeev >>:
%windir% \ fonts

можно как-то попроще, я ничего не понял... это что за папка? или что это вообще такое?

 
chepikds >>:

можно как-то попроще, я ничего не понял... это что за папка? или что это вообще такое?


вообще-то вопрос "в какую папку вставить шрифты в МТ4" тоже не очень понятен. На русском поясните. :)

в терминале никакие шрифты не хранятся. шрифтами  занимается операционная система. 

 
sergeev >>:

вообще-то вопрос "в какую папку вставить шрифты в МТ4" тоже не очень понятен.

в терминале никакие шрифты не хранятся. шрифтами занимается операционная система.

ок, попробую в операционку вставить...

 
Спасибо sergeev, всё заработало.
 
sergeev писал(а) >>

для baltik

ну а вообще эта ветка для тех, кто учится программированию, а не с просьбамим написать за вас.

Спасибо

Буду учится :)

 

здравствуете. я напсал простого советника, по примерам из учебника. советник должен выдавать сигнал в то время, как цена выходит из диапазона, который состоит из двух МА. т.е. если бар открылся в диапазоне и начал расти и его текущая цена вышла из него, то раздается звуковой сигнал. аналогично и вниз. но проблема в том, что не могу разобраться, если я делаю так:

if (Bid > MA1 || Bid < MA2) // Проверка прохода диапазона
{
Alert("Цена находится за пределами диапазона.");// Сообщение
}

то если цена находится выше советник то и дело сигналит. а если я делаю так:

if (Bid > MA1 && Fact_Up==true) // Проверка прохода вверх
{
Fact_Dn=true; // Сообщать о цене выше МА1
Fact_Up=false; // Не сообщать о цене ниже МА1
Alert("Цена находится выше диапазона.");// Сообщение
}
//--------------------------------------------------------------------
if (Bid < MA2 && Fact_Dn==true) // Проверка прохода вниз
{
Fact_Up=true; // Сообщать о цене ниже МА2
Fact_Dn=false; // Не сообщать о цене выше МА2
Alert("Цена находится ниже диапазона.");// Сообщение
}

то вообще не понятно, когда он дает сигнал - то дает, то не дает.

не могу разобраться, что такое "Fact_Up==true" и зачем это нужно. подскажите пожалуйста, кто знает.

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