MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 807

 

모두 좋은 하루! 나는 지표를 비틀면서 앉아 있다. 그는 모든 것을 올바르게 한 것 같습니다. 그러나 그것은 그러한 shnyag로 밝혀졌습니다 ... 각 양초에 거래를 엽니 다.


어드바이저 코드

// 신호 수신 ________________________________________________________________________________________________

정수 신호=-1;

if (time_bar!=시간[0]) {

time_bar=시간[0];

double stop_buy=iCustom(Symb,0,"cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,0,1);

double stop_sell=iCustom(Symb,0,"cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,1,1);

if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

double super_buy=iCustom(Symb,0,"xSuperTrend 테이프 MTF NRP","","",SuperTrend_Period,SuperTrend_Multiplier,SuperTrend_TimeFrame,SuperTrend_AutoTF,0,1);

if(stop_buy!=EMPTY_VALUE && super_buy==1) 신호=0;

if(stop_sell!=EMPTY_VALUE && super_buy==EMPTY_VALUE) 신호=1;

}


표시기 코드


리턴(0);

}

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

정수 시작()

{

문자열 이름 그림;

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit=bars-counted_bars;

if(counted_bars==0) limit-=1+2;


for(int i=1; i<limit; i++)

{

부울 업=거짓, 다운=거짓;

이중 MA0 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i);

이중 MA1 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i);

이중 MA2 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+1);

이중 MA3 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+2);


if(MA0>MA1 && MA1>MA2 && MA2>MA3) up=true;

그렇지 않으면 up=거짓;

if(MA0<MA1 && MA1<MA2 && MA2<MA3) down=true;

그렇지 않으면 아래로 = 거짓;

//---

이름 그림="";

if(닫기[i]>닫기[i+1] && 닫기[i]>열기[i+1])

{

if(아래 && 열기[i+1]>닫기[i+1] && 열기[i]>닫기[i+1] && 닫기[i]<열기[i+1] && 닫기[i]>열기[i ])

{

NameFigure="불하라미";

다시 그리기(i,colorBulls,NameFigur); 다시 그리기(i+1,colorBulls,NameFigur);

}

if(열기[i+1]>닫기[i+1] && 열기[i]>닫기[i+1] && 열기[i]<열기[i+1] && 닫기[i]>열기[i+1 ])

{

NameFigure="불크로스";

다시 그리기(i,colorBulls,NameFigur); 다시 그리기(i+1,colorBulls,NameFigur);

}

if(닫기[i+1]<열기[i+1] && 열기[i]<닫기[i+1] && 닫기[i]>열기[i+1])

{

NameFigur="강세 휩쓸기";

if(닫기[i+1]<열기[i+1] && 닫기[i]>열기[i] && 열기[i]<닫기[i+1] && 닫기[i]>닫기[i+1]+ ((열기[i+1]-닫기[i+1])/2))

{

NameFigure="불피어스";

}

다시 그리기(i,colorBulls,NameFigur); 다시 그리기(i+1,colorBulls,NameFigur);

}

if(닫기[i+2]<열기[i+2] && 열기[i+1]<닫기[i+2] && 닫기[i+1]<닫기[i+2] && 열기[i]>닫기 [i+1] && 열기[i]>열기[i+1] && 닫기[i]>=닫기[i+2])

{

NameFigure="모닝 스타";

다시 그리기(i,colorBulls,NameFigur); 다시 그리기(i+1,colorBulls,NameFigur); 다시 그리기(i+2,colorBulls,NameFigur);

}

}

if(Open[i]-Low[i]>MathMax(High[i]-Close[i],Close[i]-Open[i])*3 && Close[i]-Low[i]>MathMax(High [i]-닫기[i],닫기[i]-열기[i])*3)

{

NameFigure="해머";

if(up) {Redraw(i,colorBulls,NameFigur); 다시 그리기(i+1,colorBulls,NameFigure);}

if(down) {Redraw(i,colorBears,NameFigur); 다시 그리기(i+1,colorBears,NameFigur);}

}

///// 곰 ///// 곰 ///// 곰 ///// 곰 ///// 곰 ///// 곰 ///// 곰 ///// 곰 // /// 곰

if(닫기[i]<닫기[i+1] && 닫기[i]<열기[i+1])

{

if(up && 열기[i+1]<닫기[i+1] && 열기[i]<닫기[i+1] && 닫기[i]>열기[i+1] && 닫기[i]<열기[i ])

{

NameFigure="베어하라미";

다시 그리기(i,colorBears,NameFigure); 다시 그리기(i+1,colorBears,NameFigur);

}

if(열기[i+1]<닫기[i+1] && 열기[i]<닫기[i+1] && 열기[i]>열기[i+1] && 닫기[i]<열기[i+1 ])

{

NameFigure="베어크로스";

다시 그리기(i,colorBears,NameFigure); 다시 그리기(i+1,colorBears,NameFigur);

}

if(닫기[i+1]>열기[i+1] && 닫기[i]<열기[i] && 열기[i]>닫기[i+1] && 닫기[i]<열기[i+1])

{

NameFigure="BearEngulf";

if(닫기[i+1]>열기[i+1] && 열기[i]>닫기[i+1] && 닫기[i]<닫기[i+1]-((닫기[i+1]-열기) [i+1])/2))

{

NameFigure="다크클라우드";

}

다시 그리기(i,colorBears,NameFigure); 다시 그리기(i+1,colorBears,NameFigur);

}


if(닫기[i+2]>열기[i+2] && 열기[i+1]>닫기[i+2] && 닫기[i+1]>닫기[i+2] && 열기[i]<닫기 [i+1] && 열기[i]<열기[i+1] && 닫기[i]<닫기[i+2])

{

NameFigure="저녁별";

다시 그리기(i,colorBears,NameFigure); 다시 그리기(i+1,colorBears,NameFigur); 다시 그리기(i+2,colorBears,NameFigur);

}

if(up && High[i]-Open[i]>MathMax(Close[i]-Low[i],Open[i]-Close[i])*3 && High[i]-Close[i]>MathMax (종가[i]-저가[i],시가[i]-종가[i])*3)

{

NameFigure="슈터";

다시 그리기(i,colorBears,NameFigure); 다시 그리기(i+1,colorBears,NameFigur);

}

}

if(이름 그림!="")

{

이중 델타=(MathMax(High[i],High[i+1])-MathMin(Low[i],Low[i+1]))/2;

if(Color==colorBears) {BufferDN[i]=MathMax(High[i],High[i+1]);P=BufferDN[i]+DELTA;}

else {BufferUP[i]=MathMin(Low[i],Low[i+1]);P=BufferUP[i]-DELTA;}

DrawTEXT(StringConcatenate(NameFigur," ",TimeToStr(Time[i],TIME_DATE|TIME_MINUTES)),NameFigur,Color,Time[i+1],P);

}

}

if(Timei!=Time[0] && AlertON && i==0 && NameFigur!="") {Alert(Symbol()+" FiguresCandle = "+NameFigur);Timei=Time[0];}

리턴(0);

}

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

void Redraw(int i, color col, string name)

{

색상 = 색상;

if(!DrawCandle) 반환;

name=StringConcatenate(이름," ",TimeToStr(시간[i],TIME_DATE|TIME_SECONDS));

ObjectCreate(이름,OBJ_TREND,0,시간[i],높음[i],시간[i],낮음[i]);

ObjectSet(이름,OBJPROP_COLOR,열);

ObjectSet(이름,OBJPROP_STYLE,STYLE_SOLID);

ObjectSet(이름,OBJPROP_BACK,거짓);

ObjectSet(이름,OBJPROP_RAY,거짓);

ObjectSet(이름,OBJPROP_WIDTH,2);

name=StringConcatenate(이름,"o");

ObjectCreate(이름,OBJ_TREND,0,시간[i],열기[i],시간[i],열기[i]);

ObjectSet(이름,OBJPROP_COLOR,열);

ObjectSet(이름,OBJPROP_STYLE,STYLE_SOLID);

ObjectSet(이름,OBJPROP_BACK,거짓);

ObjectSet(이름,OBJPROP_RAY,거짓);

ObjectSet(이름,OBJPROP_WIDTH,2);

name=StringConcatenate(이름,"c");

ObjectCreate(이름,OBJ_TREND,0,시간[i],닫기[i],시간[i]+기간()*60,닫기[i]);

ObjectSet(이름,OBJPROP_COLOR,열);

ObjectSet(이름,OBJPROP_STYLE,STYLE_SOLID);

ObjectSet(이름,OBJPROP_BACK,거짓);

ObjectSet(이름,OBJPROP_RAY,거짓);

ObjectSet(이름,OBJPROP_WIDTH,2);

}

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

void DrawTEXT(문자열 NT, 문자열 이름, 색상 열, 날짜 시간 t1, 이중 p1)

{

개체 삭제(NT);

ObjectCreate(NT,OBJ_TEXT,0,t1,p1,0,0,0,0);

개체 집합(NT,OBJPROP_COLOR,열);

ObjectSetText(NT,이름,10,"Arial");

}

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


 
Kos Mos :

모두 좋은 하루! 나는 지표를 비틀면서 앉아 있다. 그는 모든 것을 올바르게 한 것 같습니다. 그러나 그런 shnyag는 ... 각 양초에 거래를 엽니 다.



"시트"는 물론 고귀한 :-) 코드를 더 신중하게 삽입하고 분명히 불필요한 복사 붙여넣기를 하지 마십시오.

주제에 - stop_buy 및 stop_sell의 값을 직접 인쇄하십시오. 조건이 명확하게 트리거되기 때문에:

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

stop_buy 및 stop_sell이 EMPTY_VALUE 가 아닌 0으로 초기화될 수 있습니다.

 
Maxim Kuznetsov :

"시트"는 물론 고귀한 :-) 코드를 더 신중하게 삽입하고 분명히 불필요한 복사-붙여넣기를 하지 마십시오.

주제에 - stop_buy 및 stop_sell의 값을 직접 인쇄하십시오. 조건이 명확하게 트리거되기 때문에:

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

stop_buy 및 stop_sell이 EMPTY_VALUE 가 아닌 0으로 초기화될 수 있습니다.

그런 일이 일어나서 죄송합니다)) 전체 페이지에서 나의 신에게)


노력하겠습니다)

 
Maxim Kuznetsov :

"시트"는 물론 고귀한 :-) 코드를 더 신중하게 삽입하고 분명히 불필요한 복사-붙여넣기를 하지 마십시오.

주제에 - stop_buy 및 stop_sell의 값을 직접 인쇄하십시오. 조건이 명확하게 트리거되기 때문에:

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

stop_buy 및 stop_sell이 EMPTY_VALUE 가 아닌 0으로 초기화될 수 있습니다.

그럼에도 불구하고 여전히 작동하지 않습니다. 그건 그렇고, 나는 그가 올바르게 판매 거래를 시작하지만 구매에서 그는 미쳐 10 억 달러를 엽니 다)))

 
Kos Mos :

그럼에도 불구하고 여전히 작동하지 않습니다. 그건 그렇고, 나는 그가 올바르게 판매 거래를 시작하지만 구매에서 그는 미쳐 10 억 달러를 엽니 다)))

글쎄, 당신은 적어도 검색을 켤 수 있습니까? 코드 붙여넣기 ...

운이 좋지 않습니다 ... 검색을 켤 필요조차 없습니다. 포럼 엔진은 자체적으로 스케일을 넣습니다 ...
 
Alexey Viktorov :

글쎄, 당신은 적어도 검색을 켤 수 있습니까? 코드 붙여넣기 ...

운이 좋지 않습니다 ... 검색을 켤 필요조차 없습니다. 포럼 엔진은 자체적으로 스케일을 넣습니다 ...

죄송합니다. 포럼에서 행동한 경험이 거의 없습니다.)))



   // получение сигнала _________________________________________________________________________________________________________
   int signal=- 1 ;
   if (time_bar!=Time[ 0 ]) {
      time_bar=Time[ 0 ];
       double stop_buy= iCustom (Symb, 0 , "cm-FiguresCandle" ,AlertON,colorBulls,colorBears,DrawCandle, 0 , 1 );
       double stop_sell= iCustom (Symb, 0 , "cm-FiguresCandle" ,AlertON,colorBulls,colorBears,DrawCandle, 1 , 1 );
       if (stop_buy!= EMPTY_VALUE || stop_sell!= EMPTY_VALUE ) {
         double super_buy= iCustom (Symb, 0 , "xSuperTrend Tape MTF NRP" , "" , "" ,SuperTrend_Period,SuperTrend_Multiplier,SuperTrend_TimeFrame,SuperTrend_AutoTF, 0 , 1 );
        if (stop_buy!= EMPTY_VALUE && super_buy== 1 ) signal= 0 ;
         if (stop_sell!= EMPTY_VALUE && super_buy== EMPTY_VALUE ) signal= 1 ;
         }


 
스키도 안가는데 도와주세요)
 
안녕하세요, 두 지표를 하나로 결합하는 데 도움이 될 모든 사람, 출처가 있습니다. 글쎄요, 매우 필요합니다.
 
Олег :
안녕하세요, 두 지표를 하나로 결합하는 데 도움이 될 모든 사람, 출처가 있습니다. 글쎄요, 매우 필요합니다.

당신은 당신 자신이 결합할 때 성공하지 못했다는 것을 보여주거나, 당신 자신이 그것을 하지 않았거나 하고 싶지 않다면 여기로 연락하십시오:

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Имеется готовый год с Амиброкера который можно использовать для "перевода" в МТ4 ( с дополнениями) Советник должен работать на всех тайм фреймах (внутри дня, дневной и выше) и обязательно на Ренко Советник должен торговать на корзине инструментов (портфель) У советника должна быть возможность менять параметры в окне (без необходимости открывать...
 
Artyom Trishkin :

당신은 당신 자신이 결합할 때 성공하지 못했다는 것을 보여주거나, 당신 자신이 그것을 하지 않았거나 하고 싶지 않다면 여기로 연락하십시오:

그래서 나는 내가 정확히 무엇을 할 수 없는지 알아내려고 노력하고 있습니다. 누군가가 당신에게 무료로 무언가를 말할 것 같지 않다는 것을 이해합니다 - 자본주의는 그것의 어머니입니다.)) 나는 그것에 반대할 것이 없습니다. 왜 거래를 하는지 이해해야 합니다 각 양초에서 매수 방향으로 열립니다.