forexpipsrunner : 이것은 OrderSend에서 결과를 반환하는 TP 정의 코드입니다. 이 알고리즘이 없으면 트랜잭션이 전송됩니다.
디버그하는 방법에는 여러 가지가 있습니다. 버그가 발견되면 버그를 찾는 프로세스입니다. 첫 번째는 F5 - MetsEditor에서 디버깅 시작입니다. 2) 경보를 사용하여 구현을 추적합니다. 3 및 4) 텍스트 레이블 및 주석 기능 에 디버깅 정보 출력 . 편리한 방법을 선택하고 이 간단한 기능을 디버그하면 프로그래머가 됩니다. 수천 줄의 프로그램은 복잡한 것으로 간주됩니다.
> err=StringToInteger((문자열)err)
이것은 역사에 기록되어야합니다 ;-)
처음에는 분명히 GetLastError()에서 int를 얻었습니다. 오류 코드 를 읽을 수 있는 설명으로 변환 ErrorDescription(err); #include <stdlib.mqh>가 활성화된 경우.
하지만 쓰여진대로 - 그것은 주석입니다
PS/ 그리고 MQL 프로그래밍을 배우지 마십시오. MQL that 4, that 5는 여전히 특정 플랫폼의 대상 언어입니다.
이렇게 쓸 수 있는지 알려주세요. 거래를 시작하고 싶지 않습니다. 계산된 숫자의 형식이 잘못된 것은 아닐까? 아니면 코드의 다른 버그?
이중 TakeLong(이중 shp)
{
int CurrentDayRange=0, FiveDayATR=0, 소요=0;
이중 TP_ATR=0;
//////피벗 입력
이중 P, S1, R1, S2, R2, S3, R3;
이중 LastHigh, LastLow, x;
정수 counted_bars = IndicatorCounted();
정수 한계, 나는;
shp=iHigh(기호(), PERIOD_D1 , 0);
//---- 피벗 지표 계산
if(counted_bars == 0)
{
x = 마침표();
if(x > 240)
리턴(-1);
}
if(counted_bars < 0)
리턴(-1);
제한 = (막대 - counted_bars) - 1;
//----
for(i = 한계, i >= 0, i--)
{
if(높음[i+1] > 마지막 높음)
LastHigh = 높음[i+1];
//----
if(낮음[i+1] < 마지막 낮음)
LastLow=낮음[i+1];
if(TimeDay(시간[i]) != TimeDay(시간[i+1]))
{
P = (마지막 고가 + 마지막 저가 + 종가[i+1]) / 3;
R1 = (2*P) - LastLow;
S1 = (2*P) - LastHigh;
R2 = P + (LastHigh - LastLow);
S2 = P - (LastHigh - LastLow);
R3 = (2*P) + (LastHigh - (2*LastLow));
S3 = (2*P) - ((2* LastHigh) - LastLow);
LastLow = 열기[i];
LastHigh = 열기[i];
}
}
////ATR 계산
(i=1;i<6;i++)
{ if(iHigh(NULL, PERIOD_D1, i)- iLow(NULL, PERIOD_D1, i)>0) FiveDayATR += (iHigh(NULL, PERIOD_D1, i)-iLow(NULL, PERIOD_D1, i));}
FiveDayATR = NormalizeDouble(FiveDayATR/5,Digits());
CurrentDayRange = (iHigh(NULL, PERIOD_D1, i)-iLow(NULL, PERIOD_D1, i));
if(FiveDayATR-CurrentDayRange>0) TP_ATR=Ask+FiveDayATR-CurrentDayRange; 그렇지 않으면 TP_ATR=0;
if (Bid>R1 && TP_ATR==0) take=shp;
else if (Bid<R1 && R1<TP_ATR) take=R1;
그렇지 않으면 = TP_ATR을 취하십시오.
리턴(테이크);
}
제안된 코드는 지표와 유사합니다. 그리고 거래는 고문이나 스크립트에 의해 열립니다. 표시기에서 OrderSend 함수를 호출하는 것은 금지되어 있습니다. 표시기가 삐 소리를 낼 수 있음 - 경보 기능에 대한 호출을 삽입하거나 적절한 위치에 소리를 냄
제안된 코드는 지표와 유사합니다. 그리고 거래는 고문이나 스크립트에 의해 열립니다. 표시기에서 OrderSend 함수를 호출하는 것은 금지되어 있습니다. 표시기가 삐 소리를 낼 수 있음 - 경보 기능에 대한 호출을 삽입하거나 적절한 위치에 소리를 냄
이것은 OrderSend에서 결과를 반환하는 TP 정의 코드입니다. 이 복잡한 알고리즘이 없으면 트랜잭션이 전송되고 방법이 없습니다. 나는 함수 TP = TakeLong(SHP);
디버그하는 방법에는 여러 가지가 있습니다. 버그가 발견되면 버그를 찾는 프로세스입니다. 첫 번째는 F5 - MetsEditor에서 디버깅 시작입니다. 2) 경보를 사용하여 구현을 추적합니다. 3 및 4) 텍스트 레이블 및 주석 기능 에 디버깅 정보 출력 . 편리한 방법을 선택하고 이 간단한 기능을 디버그하면 프로그래머가 됩니다. 수천 줄의 프로그램은 복잡한 것으로 간주됩니다.
이렇게 쓸 수 있는지 알려주세요. 거래를 시작하고 싶지 않습니다. 계산된 숫자의 형식이 잘못된 것은 아닐까? 아니면 코드의 다른 버그?
MathAbs( Close1[i] - Open1[i] ) / 포인트 + 1
MathAbs( Close2[i] - Open2[i] ) / 포인트 + 1
전체 코드에서는 다음과 같습니다.
이중 닫기1 = iClose (Symbol(), 0, i);
이중 Open1 = iOpen(Symbol(), 0, i);
이중 닫기2 = iClose(Symbol(), 0, i+1);
이중 Open2 = iOpen(Symbol(), 0, i+1);
MathAbs( Close1[i] - Open1[i] ) / 포인트 + 1
MathAbs( Close2[i] - Open2[i] ) / 포인트 + 1
if (닫기1 < 열기1 && 닫기2 > 열기2){
구입();
}
if (닫기1 > 열기1 && 닫기2 < 열기2){
팔다();
}
잘 됐어? 작동하게 하는 방법?
데모 계정 에서 사용해 보셨습니까? 무슨 일이야?
데모 계정 에서 사용해 보셨습니까? 무슨 일이야?
트롤이 매 틱마다 작동하는 이유를 말씀해 주시겠습니까?