[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 53

 

Expert Advisor에서 인쇄물을 처방 할 때 다음과 같은 뉘앙스를 발견했습니다.

double Up = iCustom(NULL, 0, "최고의 div 원본", "*** CCI-OnArray 설정 ***", 12, 3, 5, 25, "**** 표시기 설정 ***", false, false , 거짓, 0, 1);

인쇄 ("++++++++++++++", 위로);

그러면 EA는 ++++++++++++++ 2147483647의 결과를 제공합니다. 또한 버퍼 업 및 버퍼 다운 모두에 대해 동일한 숫자입니다. 이 코드가 무엇인지 알려주세요. 화살표가 나타날 때 정확히 Ikastom에서 값을 "얻는" 방법은 무엇입니까?

 

지식이 있는 사람들에게 약간의 도움을 요청 합니다. Expert Advisor / Utility 생성을 위한 올바른 코드를 알려주십시오. 알고리즘은 다음과 같습니다.

- ONE SIDE(0.1 및 0.1 로트)에서 이중 거래를 여는 것은 현재 차트/현재 시간대에서 고가/ 동일한 양초의 낮은 영역, 양초가 열린 교차점에서 한 방향으로 이중 거래의 보류 주문을 로트(예: 0.2 및 0.1)로 같은 지점에 배치합니다.

 

문제:

코드가 있습니다

정수 시작()

if (H==TimeHour( TimeCurrent() ) && M==TimeMinute(TimeCurrent()) && S==TimeSeconds(TimeCurrent()))

{+ 일부 조건

그러면 주문이 열립니다.

티켓=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,SL,TP);
if (티켓 > 0)
Alert("구매 주문 오픈",티켓);

반품;}

그러나 이 순간 진드기가 없으면 작동하지 않습니다

생각할 시간을 더 준다면 여러 주문을 열 수 있습니다.

그러나 나는 하나만 필요하며 이미 열려 있는 주문에는 관심을 기울이지 않습니다.

어떻게 해야할지 말해줘

 
v2812 :

Expert Advisor에서 인쇄물을 처방 할 때 다음과 같은 뉘앙스를 발견했습니다.

double Up = iCustom(NULL, 0, "최고의 div 원본", "*** CCI-OnArray 설정 ***", 12, 3, 5, 25, "**** 표시기 설정 ***", false, false , 거짓, 0, 1);

Print("++++++++++++++", 위로);

그러면 EA는 ++++++++++++++ 2147483647의 결과를 제공합니다. 또한 버퍼 업 및 버퍼 다운 모두에 대해 동일한 숫자입니다. 이 코드가 무엇인지 알려주십시오. 화살표가 나타날 때 정확히 Ikastom에서 값을 "얻는" 방법은 무엇입니까?


iCustom()이 아닌 전역 터미널 수준 변수를 통해 표시기 값을 전달해 보십시오. 이것들은 F3으로 볼 수 있는 것들입니다. 사실 이것이 데이터를 전송하는 유일한 일반적인 방법인 상황은 드물지 않습니다. 나는 그것들을 가지고 있었다.

표시기에서 일부 유형의 화살표는 표시기 버퍼를 통해 그려지고 다른 유형은 객체로 생성될 가능성이 있습니다. 이것이 데이터 에 화살표 설정 가격이 없을 수 있는 유일한 이유입니다. 데이터는 표시기 버퍼에서 이 창으로 출력됩니다.

 
palesandr :

문제:

코드가 있습니다

정수 시작()

if (H==TimeHour(TimeCurrent()) && M==TimeMinute(TimeCurrent()) && S==TimeSeconds(TimeCurrent()))

{+ 일부 조건

그러면 주문이 열립니다.

티켓=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,SL,TP);
if (티켓 > 0)
Alert("구매 주문 오픈",티켓);

반품;}

그러나 이 순간 진드기가 없으면 작동하지 않습니다

생각할 시간을 더 준다면 여러 주문을 열 수 있습니다.

그러나 나는 하나만 필요하며 이미 열려 있는 주문에는 관심을 기울이지 않습니다.

어떻게 해야할지 말해줘


어드바이저 코드는 새 틱이 도착할 때만 작동합니다. 다음 틱에 설정된 신호도 true이고 주문 수에 대한 확인이 없기 때문에 둘 이상의 주문이 열립니다. 주문을 계산해야 합니다.
 
drknn :


iCustom()이 아닌 전역 터미널 수준 변수를 통해 표시기 값을 전달해 보십시오. 이것들은 F3으로 볼 수 있는 것들입니다. 사실 이것이 데이터를 전송하는 유일한 일반적인 방법인 상황은 드물지 않습니다. 나는 그것들을 가지고 있었다.

표시기에서 일부 유형의 화살표는 표시기 버퍼를 통해 그려지고 다른 유형은 객체로 생성될 가능성이 있습니다. 이것이 데이터 창에 화살표 설정 가격이 없을 수 있는 유일한 이유입니다. 데이터는 표시기 버퍼에서 이 창으로 출력됩니다.


매우 감사합니다! 이제 말씀하신대로 써보도록 하겠습니다.
 
palesandr :
그러나 이 순간 진드기가 없으면 작동하지 않습니다

생각할 시간을 더 준다면 여러 주문을 열 수 있습니다.

그러나 나는 하나만 필요하며 이미 열려 있는 주문에는 관심을 기울이지 않습니다.

어떻게 해야할지 말해줘


1. 글로벌 날짜/시간 last_dt;


2. 적시에 하라

날짜 시간 dt=StrToTime(H+":"+M+":"+S);


삼.

if (TimeCurrent()>=dt && last_dt<dt) // 정확한 시간이고 다음 날

{

// 오픈 오더

if (티켓>0) last_dt=TimeCurrent(); // 오픈 시간 기억

}

 
v2812 :

그러면 EA는 ++++++++++++++ 2147483647의 결과를 제공합니다. 또한 버퍼 업 및 버퍼 다운 모두에 대해 동일한 숫자입니다.

2147483647 - - 이것은 상수 EMPTY_VALUE 입니다.
 

알겠어요.

주문 재계산에 대해 좀 더 구체적으로 설명해야 합니다. 예제(코드 형식) 또는 링크일 수 있습니다.

나는 이렇게 시도했다

if (티켓 > 0)
Alert("구매 주문 오픈",티켓);

수면 (10000)
반품;}

왜 작동하지 않았어

drknn :

어드바이저 코드는 새 틱이 도착할 때만 작동합니다. 다음 틱에서 설정된 신호도 true이고 주문 수에 대한 확인이 없기 때문에 둘 이상의 주문이 열립니다. 주문을 계산해야 합니다.
 

날짜에 신경쓰지 않는 프로그램이 필요합니다 시간만 중요합니다

당신의 조언이 이 경우에 효과가 있습니까?

sergeev :


1. 글로벌 날짜/시간 last_dt;


2. 적시에 하라

날짜 시간 dt=StrToTime(H+":"+M+":"+S);


삼.

if (TimeCurrent()>=dt && last_dt<dt) // 정확한 시간이고 다음 날

{

// 오픈 오더

if (티켓>0) last_dt=TimeCurrent(); // 오픈 시간 기억

}