Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 447

 
TarasBY:
И хде вы такое вычитали про TimeDayOfWeek() (в примере)??? :)))

В справашнеге ;)

Был неправ, можно и в форме Time[] задавать, но в примере-то по-другому, да и удобнее так )))

 
Vitek2010:
Нет не устроит. я обьясню - ваш форум это как надежда на последний грамотный оплот прогеров . и вставление размера - именно так и видит это написание PERIOD_W1 но ни использование размера ни использование фиксированных точек отсчета в виде дат не ладут никакого нужного эффекта . поэтому я и написал конкретный вопрос по вставлению конкретного понятия - пятницы - кстати ваш код не компилируеться пишет 'version' - unknown property ("версия " - неизвестное свойство ) так что если не знаете как вставить DayOfWeek и цифры 5(номер пятницы) в тот код который я дал другие варианты не помогут.


if(TimeDayOfWeek(TimeCurrent())==5)   //Пятница
 
r772ra:



Вставьте пожалуйста ваш вариант в код моего индикатора и компилируйте его . и выложите исправленный индюк открытым текстом не файлом .. А то товарищ Venin дал некомпилируемый код и молчок .

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 Lime

//--------------------------------------------------------------------

double Buffer[];

//--------------------------------------------------------------------

int init()

{

SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);

SetIndexBuffer(0,Buffer);

return(0);

}

// -------------------------------------------------------------------


int deinit()

{


return(0);

}

//--------------------------------------------------------------------

int start()

{

int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

{

if(TimeDayOfWeek(TimeCurrent())==5) //Пятница

if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1]))

Buffer[i] = 0;

else

Buffer[i] = Buffer[i+1];

if(Close[i]>Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее и преддыдущее движение растут

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее и преддыдущее движение падают

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]>Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее лвижение растет а предыдущее падает

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее движение падает а предыдущее растет

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

}

return(0);

}

//---------------------------------------------------------------------

 
Vitek2010:


Вставьте пожалуйста ваш вариант в код моего индикатора и компилируйте его . и выложите исправленный индюк открытым текстом не файлом .. А то товарищ Venin дал некомпилируемый код и молчок .


build 509

//+------------------------------------------------------------------+
//|                                                    Vitek2010.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 Lime

//--------------------------------------------------------------------

double Buffer[];

//--------------------------------------------------------------------

int init()

{

SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);

SetIndexBuffer(0,Buffer);

return(0);

}

// -------------------------------------------------------------------



int deinit()

{



return(0);

}

//--------------------------------------------------------------------

int start()

{

int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

{

if(TimeDayOfWeek(TimeCurrent())==5) //Пятница

Buffer[i] = 0;

else

Buffer[i] = Buffer[i+1];

if(Close[i]>Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее и преддыдущее движение растут

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее и преддыдущее движение падают

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]>Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее лвижение растет а предыдущее падает

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее движение падает а предыдущее растет

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

}

return(0);

}

//---------------------------------------------------------------------
 
Это все не то, как на истории определить пятницу, не знаю.
 
TarasBY:
а при чём тогда упоминание про комплируемую библиотеку?


А при том что:

TarasBY:
Витя, здесь ничего разбираться не нужно - человек хочет, чтобы глобальные переменные из одной "песочницы" (советник с его библиотеками) были видны в другой "песочнице" (компилируемая библиотека). :)))
 

Господа профи,окажите услугу посмотрите кусочек кода правильно я указал условия входа по 3 индикаторам.

Так как я только учусь еще многого не понимаю.

E_ma=iMA(Symbol(),TimeFrame,period_ema,0,MODE_EMA,PRICE_CLOSE,1);
Cloce =iClose(Symbol(),PERIOD_H1,1);

e_ma=iMA(Symbol(),timeframe,period_ema,0,MODE_EMA,PRICE_CLOSE,1);
cloce =iClose(Symbol(),PERIOD_M15,1);

bbUP=iCustom(Symbol(),PERIOD_M5,"Bollinger Bands",BandsPeriod,BandsShift,BandsDeviations,1,0);
bbDOWN=iCustom(Symbol(),PERIOD_M5,"Bollinger Bands",BandsPeriod,BandsShift,BandsDeviations,2,0);

if(OrdersTotal()==0 && CountBuy()==0 && CountSell())
{
if(Cloce >E_ma && cloce >e_ma)
{
if(Ask<=bbDOWN)
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"",Magic,0,Green);
if(ticket>0)
{
TP = NormalizeDouble(Ask + TakeProfit * Point, Digits);
SL = NormalizeDouble(Ask-StopLoss* Point, Digits);
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0);
}
}
else
if(Cloce <E_ma && cloce <e_ma)
{
if(Bid>=bbUP)
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"",Magic,0,Red);
if(ticket>0)
{
TP = NormalizeDouble(Bid - TakeProfit * Point, Digits);
SL = NormalizeDouble(Bid+StopLoss* Point, Digits);
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0);
}
}
}


return(0);

Поправьте меня если чего не правильно,компилирует без ошибок,а вот в тесторе ордера не открывает .Потому как? где то ошибка в условии.Как правильно написать,я не пойму пока.кто нить на пальцах поясните ПЛИИЗ !!!

 
r772ra:
Это все не то, как на истории определить пятницу, не знаю.

Ну да вы убрали обнуление недельного цикла if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])) а вместо него вставили if(TimeDayOfWeek(TimeCurrent())==5) //Пятница воззможно если эти функции чтобы както были вместе то что то получится . я уже наверное сотни всяких вариантов пробовал . отчаяние .вроде просто мыльтитаймфреймовые показания с недельного тФ показывать на меньших тф- мах. и ни как не найду решения .

 
Vitek2010:

Ну да вы убрали обнуление недельного цикла if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])) а вместо него вставили if(TimeDayOfWeek(TimeCurrent())==5) //Пятница воззможно если эти функции чтобы както были вместе то что то получится . я уже наверное сотни всяких вариантов пробовал . отчаяние .вроде просто мыльтитаймфреймовые показания с недельного тФ показывать на меньших тф- мах. и ни как не найду решения .


Есть мысль, открытие нового недельного бара - обнуляем буфер, дальше накапливайте ваши пункты
 
alsu:
Сделайте Ticket массивом Ticket[5], храните в нем все 5 тикетов. При закрытии, соответственно, циклом по всем тикетам.

Как примерно это осуществить? Если в другие функции вроде вник, но с ордерами и массивами пока у меня не совсем есть понимание.