yosuf: Исправно работающий советник не выставляет ордера ровно 1 час, затем работает нормально еще 23 часа. "Перерыв" с 23 до 24 и снова работает. Хотя в настрйках прописано: HourStart 0, HourEnd 24.
Что Вы как маленький?
Приходят ли тики?
Если да, то производит ли советник попытки открыть ордер?
Если да, то какой номер тикета возвращает функция OrderSend()?
Если "-1", то какой код ошибки возвращает GetLastError()?
Доброго времени уважаемые. Ранее программировал на С++ (институт лет 10 назад).
Нужна помощь в таком вопросе:
Алгоритм по условию открывает 2 отложенных ордера. Ордер BUYSTOP всегда первым, SELLSTOP после него.
Новый ТИК:
Как отследить есть ли уже рабочие ордера (BUY ? SELL ? BUYSTOP ? SELLSTOP ?) ?
Как с приходом нового тика определить закрытие сработавшего ордера по TakeProfit + закрыть в таком случае противоположный ордер ( если такой еще есть )?
Хочу сделать мультитаймфреймную МА, которая изменяет свой цвет при смене динамики. Отображение средней цены с других ТФ сделал, но как решить задачу со сменой цвета разобраться пока не получается.
И все-таки, может ли кто-нибудь подсказать идею или даже прямое руководство к действию?
Добрый день! Совершенно не чертит индикатор. Я не могу вычислить, в чем ошибка, все выглядит правильно написанным. Я ни знаю, что думать. Причем, примерно такой же код, без функции и нибольшого дополнения в конце, чертит!! Пожалуста, подскажите, может я что-то незнаю, не пойму, или просто как-то не вижу ошибку, которую и мог бы понять.
//+------------------------------------------------------------------+//| ИндюкДимонакомпил.mq4 |//| Copyright 2012, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright 2012, MetaQuotes Software Corp."#property link "http://www.metaquotes.net"#import "user32.dll"int PostMessageA(int hWnd,int Msg,int wParam,string lParam);
#import#define WM_COMMAND 0x0111int delimiter = 0;
#property indicator_chart_windowdouble ВерхняячертаBuffer1[];
double НижняячертаBuffer2[];
double СинняячертаBuffer3[];
double вершина;
double основание_первого_снижения;
double начало;
double вершина_волны_3;
externint T=4,K=200;
int timeframe, start ;
int бар_вершина ;
int бар_основание_первого_снижения;
int бар_начало;
int pereklutsatel;
double naklon,linija2; int P;externint RO=1;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{
//---- indicators//----return(0);
}
//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----//----return(0);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start()
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars-1;
for (int i=limit;i>=0;i--) {
//----for ( int J=0;J<=RO;J++){
//----// for(int i=Bars; i>=0;i--)
i=Bars;
бар_вершина=iHighest( NULL, timeframe, MODE_HIGH, K, start ) ;
вершина =High[ бар_вершина ];
бар_основание_первого_снижения=iLowest( NULL, timeframe, MODE_LOW,NormalizeDouble ( бар_вершина/2,0), start ) ;
основание_первого_снижения=Low[ бар_основание_первого_снижения ];
бар_начало=iLowest( NULL, timeframe, MODE_LOW,NormalizeDouble (бар_вершина*1.5,0), бар_вершина ) ;
начало=Low[ бар_начало ];
if(начало>основание_первого_снижения){naklon=(начало-основание_первого_снижения)/(бар_начало-бар_основание_первого_снижения);
НижняячертаBuffer2[бар_начало]=начало;linija2=начало;for(i=бар_начало-1;i>=0;i--){linija2=linija2-naklon;
НижняячертаBuffer2[i]=linija2;
}
НижняячертаBuffer2[бар_основание_первого_снижения]=основание_первого_снижения;}
for (i=0;i<100;i++){ СинняячертаBuffer3[i]= Open[i];}
for (i=330;i<500;i++){ СинняячертаBuffer3[i]= Open[i];}
ВерхняячертаBuffer1[бар_начало]=начало;
double точка4; int бар_точка4; бар_точка4=iHighest( NULL, timeframe, MODE_HIGH, бар_основание_первого_снижения, 3 ) ;
точка4 =High[ бар_точка4 ];
if(вершина>точка4){naklon=(начало-точка4)/(бар_начало-бар_точка4);
double linija1=начало;for(i=бар_начало-1;i>=0;i--){linija1=linija1-naklon;ВерхняячертаBuffer1[i]=linija1; }}
double vulf=НижняячертаBuffer2[0];
if ( vulf==Ask&&vulf==Bid)vulf=1;
else{ for (vulf=vulf+Point*10; vulf==НижняячертаBuffer2[0];vulf=vulf-Point){
if ( vulf==Ask&&vulf==Bid){vulf=1;}}
for (vulf=vulf-Point*10; vulf==НижняячертаBuffer2[0];vulf=vulf+Point){
if ( vulf==Ask&&vulf==Bid)vulf=1;}
}
if (vulf==1){Comment (" Есть вульв!!! " , " timeframe " , timeframe);return(0); }
if (vulf!=1&&pereklutsatel==1) {
if(delimiter<3){delimiter++;Comment(delimiter);return(0);}
delimiter=0;
fChangePeriod();P++;
} } }
//----return(0);
}
//+------------------------------------------------------------------+void fChangePeriod(){int ii,hwd = WindowHandle(Symbol(),Period());
switch(Period()){
casePERIOD_W1 : ii = 33134; break; //PERIOD_D1;casePERIOD_D1 : ii = 33136; break; //PERIOD_H4;casePERIOD_H4 : ii = 33135; break; //PERIOD_H1;casePERIOD_H1 : ii = 33140; break; //PERIOD_M30;casePERIOD_M30 : ii = 33139; break; //PERIOD_M15;casePERIOD_M15 : ii = 33138; break; //PERIOD_M5;casePERIOD_M5 : ii = 33137; break; //PERIOD_M1;casePERIOD_M1 : ii = 33141; break; //PERIOD_W1;
}
PostMessageA(hwd, WM_COMMAND, ii, 0);
return;
}
Dimka-novitsek: Добрый день! Совершенно не чертит индикатор. Я не могу вычислить, в чем ошибка, все выглядит правильно написанным. Я ни знаю, что думать. Причем, примерно такой же код, без функции и нибольшого дополнения в конце, чертит!! Пожалуста, подскажите, может я что-то незнаю, не пойму, или просто как-то не вижу ошибку, которую и мог бы понять.
Исправно работающий советник не выставляет ордера ровно 1 час, затем работает нормально еще 23 часа. "Перерыв" с 23 до 24 и снова работает. Хотя в настрйках прописано: HourStart 0, HourEnd 24.
Что Вы как маленький?
Приходят ли тики?
Если да, то производит ли советник попытки открыть ордер?
Если да, то какой номер тикета возвращает функция OrderSend()?
Если "-1", то какой код ошибки возвращает GetLastError()?
Что Вы как маленький?
Приходят ли тики?
Если да, то производит ли советник попытки открыть ордер?
Если да, то какой номер тикета возвращает функция OrderSend()?
Если "-1", то какой код ошибки возвращает GetLastError()?
1. Приходят;
2. Производит, как обычно, причем, настойчиво;
3., 4. - теперь проверю по журналу.
Вспомнил, и на тестере не ставит ордера в этот период.
Спасибо.
Доброго времени уважаемые. Ранее программировал на С++ (институт лет 10 назад).
Нужна помощь в таком вопросе:
Алгоритм по условию открывает 2 отложенных ордера. Ордер BUYSTOP всегда первым, SELLSTOP после него.
Новый ТИК:
Как отследить есть ли уже рабочие ордера (BUY ? SELL ? BUYSTOP ? SELLSTOP ? ) ?
Как с приходом нового тика определить закрытие сработавшего ордера по TakeProfit + закрыть в таком случае противоположный ордер ( если такой еще есть )?
Здравствуйте.Подскажите пожалуйста код индикатора чтобы нарисовать вот такую линию или лучше луч по этим двум точкам.
Подскажите, пожалуйста:
Хочу сделать мультитаймфреймную МА, которая изменяет свой цвет при смене динамики. Отображение средней цены с других ТФ сделал, но как решить задачу со сменой цвета разобраться пока не получается.
И все-таки, может ли кто-нибудь подсказать идею или даже прямое руководство к действию?
Добрый день! Совершенно не чертит индикатор. Я не могу вычислить, в чем ошибка, все выглядит правильно написанным. Я ни знаю, что думать. Причем, примерно такой же код, без функции и нибольшого дополнения в конце, чертит!! Пожалуста, подскажите, может я что-то незнаю, не пойму, или просто как-то не вижу ошибку, которую и мог бы понять.
Конечно не чертит, у него ж нет индикаторных буферов.
Как нет??
А где они?
Назовите хотябы один.