코딩 도움말 - 페이지 161

 

한번에 2개 주문

안녕하세요, 저는 EA를 코딩하려고하는데 문제가 있습니다. 해결 방법을 모르겠습니다 :?

그래서 문제는 현재 시간 에 2개의 주문(OPENSTOP 및 SELLSTOP)을 열고 싶지만 이 EA에서는 약 100개 이상 열리므로 2개만 열도록 해결하는 방법은 무엇입니까?

외부 이중 로트=1;

extern double h_beg=10;

외부 이중 h_end=23;

외부 이중 TakeProfit=20;

외부 이중 정지 손실 = 90;

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

정수 시작()

{

이중 prevbar_H;

이중 prevbar_L;

이중 막대_H;

이중 막대_L;

이중 판매;

이중 구매;

부울 trade_time;

부울 Sell_opened;

부울 buy_opened;

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

if (시()==h_beg)

{

trade_time = 참;

for(int h=1; h<=11; h++)

{

bar_H = iHigh(NULL,0,h);

if (prevbar_H==0 || prevbar_H<bar_H)

{

prevbar_H = bar_H;

}

}

for(int l=1; l<=11; l++)

{

bar_L = iLow(NULL,0,l);

if (prevbar_L==0 || prevbar_L>bar_L)

{

prevbar_L = bar_L;

}

}

}

if (시()==h_end)

{

trade_time = 거짓;

prevbar_H = 0;

prevbar_L = 0;

삭제 보류();

삭제BUY();

판매 = 0;

구매 = 0;

}

//+----------------------------------------------- ------구매 또는 판매----------+

if(시()==h_beg)

{

if(판매==0)

{

OrderSend(Symbol(),OP_SELLSTOP,Lots,prevbar_L,3,prevbar_L+200*Point,prevbar_L-200*Point,"MA 샘플",16384,0,Green);

판매 = 1;

}

if(구매==0)

{

OrderSend(Symbol(),OP_BUYSTOP,Lots,prevbar_H,3,prevbar_H-200*Point,prevbar_H+200*Point,"MA 샘플",16384,0,Green);

구매 = 1;

}

}

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

리턴(0);

}

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

무효 삭제 보류()

{

for(int i=0; i<OrdersTotal(); i++)

{

주문 선택(i,SELECT_BY_POS,MODE_TRADES);

{

주문삭제(주문티켓());

}

}

}

무효 삭제BUY()

{

for(int i=0; i<OrdersTotal(); i++)

{

주문 선택(i,SELECT_BY_POS,MODE_TRADES);

{

if (OrderType() == OP_BUY)

{

OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, 빨간색 );

}

}

}

}
 
carbonmimetic:
안녕 믈라덴,

2개의 최저점 사이에 막대를 표시하려면 일요일 오후 23시에서 00시 사이의 막대를 어떻게 피할 수 있습니까?

왜냐하면 4h 차트에는 그 막대가 있고 1시간만 지속되기 때문입니다..... 그리고 일간 차트에도 나타납니다.

미리 감사합니다

탄소 모방

다음과 유사한 요일 확인을 추가하십시오.

if (TimeDayOfWeek(Time[yourCounter])!=0)

0은 일요일이고 이 경우 해당 막대를 건너뛰어야 합니다.

 

내가 사용하는 시스템은 martingale 거래 시스템과 같기 때문에 일단 주문을 하면 약 1개의 작업 주문과 4개의 보류 중인 주문 이 있습니다. 잃으면 두 번째 보류 중인 주문이 작업 주문이 되므로 이전의 TP를 현재 주문과 동일하게 이동해야 합니다. , 그러므로 나는 EA 가 이것 을 자동 으로 하도록 할 수 있기를 바랍니다 . 그래서 나는 그것을 계속 볼 필요 가 없습니다 . 왜냐하면 언젠가 점심 이나 저녁 식사 를 하러 나가야 하기 때문입니다 . 나는 스스로 코딩을 시도하지만 새로운 주문을 선택하고 이전 주문을 수정하는 방법을 모릅니다.

 
mladen:
탄소 모방

다음과 유사한 요일 확인을 추가하십시오.

if (TimeDayOfWeek(Time[yourCounter])!=0)
0은 일요일이고 이 경우 해당 막대를 건너뛰어야 합니다.

그래, 정말 고마워!

 

안녕하세요 mladen님

코드를 조사하는 데 도움을 주시겠습니까? 라이브 차트에서 볼 수 있습니다. 과거 신호 라인 을 다시 칠할 수 있습니다. mt4 메뉴 새로 고침을 누르면 라인이 위치를 완전히 이동할 수 있습니다. 즉, 과거 신호 라인을 의미합니다.

과거를 다시 그리거나 문제를 자동 새로 고칠 수 없도록 이 문제를 해결할 수 있습니까? 내부 루프에 문제가 있거나 방법이 있는 막대를 계산하는 것과 같은 것입니까? 저는 코드의 피상적인 초보자일 뿐입니다. 많은 도움을 주셔서 감사합니다.

파일:
 
kenwa:
안녕하세요 mladen님

코드를 조사하는 데 도움을 주시겠습니까? 라이브 차트에서 볼 수 있습니다. 과거 신호 라인을 다시 칠할 수 있습니다. mt4 메뉴 새로 고침을 누르면 라인이 위치를 완전히 이동할 수 있습니다. 즉, 과거 신호 라인을 의미합니다.

과거를 다시 그리거나 문제를 자동 새로 고칠 수 없도록 이 문제를 해결할 수 있습니까? 내부 루프에 문제가 있거나 방법이 있는 막대를 계산하는 것과 같은 것입니까? 저는 코드의 피상적인 초보자일 뿐입니다. 많은 도움을 주셔서 감사합니다.

켄와

init를 교체하고 다음으로 시작하십시오.

double CCI_idx[];

double CCI_idt[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,CCI_idx);

SetIndexBuffer(1,CCI_idt);

return(0);

}

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

//| |

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

int start()

{

int i,counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for(i=limit;i>=0;i--) CCI_idt = iCCI(abc,0,CCI_Period,applied_price,i);

for(i=limit;i>=0;i--) CCI_idx = iMAOnArray(CCI_idt,Bars,MA_Period,0,MA_Method,i);

return(0);

}

cci 값 수집에 동일한 버퍼를 사용하고 해당 cci의 평균을 저장할 수 없습니다. 또한 CCI 호출에서 시간 프레임 참조를 제거했습니다. 다중 시간 프레임 모드에서도 계산하려면 다르게 작성해야 합니다.

__________________________

추신: 현재 차트에서 다른 기호를 사용하는 경우에도 동일한 조언을 적용할 수 있습니다. 현재 심볼의 변경된 막대 수는 다시 칠하는 효과를 얻을 수 있도록 다른 대상 심볼의 막대 수와 전혀 같을 필요가 없지만 그대로 둡니다.

 

안녕하세요 mladen님

위의 #1606을 참조하십시오. 저는 매우 피상적인 초보자이거나 실제로 거의 알지 못하기 때문에 귀하의 의미를 이해할 수 없습니다. 여기에 실행 가능한 지표를 첨부할 수 있습니까? 두 개의 버퍼를 사용하는 대신 하나의 버퍼를 사용하여 CCI 값을 계산한 다음 평균을 수행할 수 있습니까? 다른 기호를 언급했는데 동일한 차트에 두 개의 기호를 수용하는 간단한 버전을 작성할 수 있습니까? mtf인 경우 대신 작성하는 방법, 많은 도움을 주셔서 감사합니다.

 
kenwa:
안녕하세요 mladen, 위의 #1606을 참조하십시오. 저는 매우 피상적인 초보자이거나 실제로 거의 알지 못하기 때문에 귀하의 의미를 이해할 수 없습니다. 여기에 실행 가능한 지표를 첨부할 수 있습니까? 두 개의 버퍼를 사용하는 대신 하나의 버퍼를 사용하여 CCI 값을 계산한 다음 평균을 수행할 수 있습니까? 다른 기호를 언급했는데 동일한 차트에 두 개의 기호를 수용하는 간단한 버전을 작성할 수 있습니까? mtf인 경우 대신 작성하는 방법, 많은 도움을 주셔서 감사합니다.

켄와

버퍼 계산에 동일한 버퍼를 사용한 다음 해당 CCI의 평균 결과를 동일한 버퍼에 저장할 수 없습니다. 평균은 과거 값을 변경합니다.

멀티 심볼 인디케이터(현재 차트에서 다른 심볼에 접근할 수 있는 인디케이터) 현재 : 만약에 제가 솔루션을 게시한다면 간단하지 않을 것 같습니다. 이에 대한 간단한 해결책은 없으며 먼저 동시에 두 개의 다른 기호에서 발생하는 일을 정리해야 합니다.

현재 기호 및 현재 시간 프레임에서 올바르게 작동하는 버전 첨부(iMAOnArray() 함수를 사용하려는 경우 cci의 평균을 계산할 수 있는 유일한 방법)

파일:
 

켄와

이것은 여러 시간 프레임에서 작동하고 모든 기호를 선택할 수 있도록 하는 가장 간단한 가능한 방법입니다. 언뜻 들리는 것처럼 간단하지 않다는 것을 알 수 있지만 이것은 올바른 데이터를 수집하고 그렇게 할 때 다시 그리는 것을 방지하는 데 필요한 모든 것을 수행합니다.

 

안녕하세요 mladen님

정말 감사합니다. 위 참조, mtf가 아닌 버전으로 작성하는 경우 어떻게 하시겠습니까? 유치원 코딩 수준 때문에 수정할 수 없습니다. 그건 그렇고, 계산하는 데 2개의 버퍼를 사용한 것처럼 보이지만 mt4는 최대 8개의 버퍼만 허용합니다. 그래서 라이브에서 작동 가능)), 참고용으로 동시에 8개의 기호를 표시할 수 있습니다. 필요한 통화 또는 외부에서 직접 입력하려는 기호가 아닙니다. 거기에 수정되지 않음) 참조 표시기와 같은 cci mtf를 만드는 데 어떻게 도움을 줄 수 있습니까? (그렇게 복잡할 필요는 없지만 유사한 기능 이 있습니까?) 친절한 도움에 다시 한번 감사드립니다.

파일:
reference.mq4  17 kb