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

 
drknn :


문제 진술에서.

- 차트에 선이 있는지 스크립트로 인식합니다.

- 라인이 존재하면 시작과 끝의 가격을 변수에 출력합니다. 변수에 막대 번호(또는 시간)를 표시합니다.

- 필요한 계산을 프로그래밍 방식으로 수행합니다.

- 화면(또는 텍스트 문서 또는 전문가 저널)에 결과 표시

이 4가지 과제를 바로 해결할 수 없다면 언어를 배우는 것부터 시작해야 합니다.


ㄹㅇ ! 감사하다! 정리하겠습니다!!!
 
Zhunko :

비밀이 아닙니다. 여기에 대해 많이 쓰여 있습니다. 스토리가 어떻게 만들어졌는지는 중요하지 않습니다. 요점은 Expert Advisor가 차트에서 작동하도록 차트를 업데이트하는 것입니다.

WinAPI를 사용하여 수행할 수 있습니다. 여기에 여러 번 설명되어 있습니다. 나는 내 자신의 라이브러리 를 썼다. 여기 에 게시됨 .

그래프의 오프라인 업데이트를 관리하는 기능이 있습니다. 스크립트나 전문가가 필요하지 않습니다. 하지만 모든 사람을 위한 것은 아닙니다. 모든 사람이 Expert Advisor나 스크립트 또는 지표에서 차트를 업데이트할 수 있는 기능도 있습니다. 그들은 사용하기가 더 어렵습니다. 일정을 업데이트할 프로그램을 파악해야 하기 때문입니다. 예제는 테스트 스크립트에 있습니다.

주석에 표시하기 위해 로그 파일의 마지막 줄을 "분리"하는 기성 솔루션이 있습니까?
 

멍청이를 도와주세요. 문제를 업데이트하겠습니다.

차트에는 두 개의 점이 있습니다. 포인트 2는 제로 바에 더 가깝고 포인트 1은 역사상 제로 바에서 더 먼 것입니다. 이 두 지점에서 추세선 을 만들려고 합니다.

N(변수 int RayLong) 순방향 간격으로 이 지점 사이의 세그먼트를 확장합니다. 코드는 다음과 같습니다.

 if (RayLong!= 0 && point1s==true && point2s==true)
{
//расчет цены в будущем
if (price11s>price22s) {price11s= NormalizeDouble (price11s+((price11s-price22s)*RayLong), Digits );} 
if (price11s<price22s) {price11s= NormalizeDouble (price11s-((price22s-price11s)*RayLong), Digits );}
//расчет бара в будущем
int bis= iBarShift ( Symbol (), 0 ,time22s,true)- iBarShift ( Symbol (), 0 ,time11s,true);
Print ( "Sup " + iBarShift ( Symbol (), 0 ,time22s,true)+ " " + iBarShift ( Symbol (), 0 ,time11s,true)+ " " +bis+
" sec=" +bis* Period ()* 60 * NormalizeDouble (RayLong, Digits )+ " Time=" + TimeToStr (time11s+( Period ()* 60 *
( iBarShift ( Symbol (), 0 ,time22s,true)- iBarShift ( Symbol (), 0 ,time11s,true)+ 1 )*RayLong),TIME_DATE|TIME_SECONDS));
time11s=time11s+( Period ()* 60 *(( iBarShift ( Symbol (), 0 ,time22s,true)- iBarShift ( Symbol (), 0 ,time11s,true))*RayLong));
//time11s=time11s+((time11s-time22s)*RayLong); //альтернативный вариант предыдущей строки
}
문제 - 계산된 포인트가 날짜별로 부동합니다. 가격 대비 모든 것이 괜찮습니다. 그러나 날짜에 따르면 일반적으로 떠 있습니다. 인쇄를 통해 예상 날짜가 차트에 없는 경우(주말 또는 공휴일)에 발생한다는 결론에 도달했습니다. 문제에 대한 해결책을 제안하십시오.
 
forexnew :
주석에 표시하기 위해 로그 파일의 마지막 줄을 "분리"하는 기성 솔루션이 있습니까?
쓸모 없다. 로그 파일은 MT4 언로드 후 또는 MT4에 시간이 있을 때 채워집니다.
 
ZZZEROXXX :

멍청이를 도와주세요. 문제를 업데이트하겠습니다.

차트에는 두 개의 점이 있습니다. 포인트 2는 제로 바에 더 가깝고 포인트 1은 역사상 제로 바에서 더 먼 것입니다. 이 두 지점에서 추세선을 만들려고 합니다.

N(변수 int RayLong) 순방향 간격으로 이 지점 사이의 세그먼트를 확장합니다. 코드는 다음과 같습니다.

문제 - 계산된 포인트가 날짜별로 부동합니다. 가격 대비 모든 것이 괜찮습니다. 그러나 날짜에 따르면 일반적으로 떠 있습니다. 인쇄를 통해 예상 날짜가 차트에 없는 경우(주말 또는 공휴일)에 발생한다는 결론에 도달했습니다. 문제에 대한 해결책을 제안하십시오.

문제가 이해가 안 가네요... 가격과 막대 를 기준으로 작성한다면... 결국 차트에 주말 및 휴무일 막대 가 없습니다. 이는 추세선이 거래일에 해당하는 다음 막대에 대해 계속되어야 함을 의미합니다.

아니면 다른 것이 있습니까?

 

배열이 다음 코드에서 보류 중인 주문 티켓으로 채워질지 여부를 알려주십시오.

정수 티켓[];

정수 세트펑크()

{

(i=0, i<=k-1, i++)

{
ticket[i]=OrderSend(Symbol(),OP_BUYSTOP,0.01*Lots,Ask+Step*i*Point,3,Bid-S_Loss*Point,0,"",10000,0,Green);

ticket[i+k]=OrderSend(Symbol(),OP_SELLSTOP,0.01*Lots,Bid-Step*i*Point,3,Ask+S_Loss*Point,0,"",10000,0,Green);

}

}

????
Print()를 통해 인쇄를 시도하면 0이 반환됩니다.

 
정적 메모리 클래스 가 필요한 이유는 무엇입니까? 가능하다면 코드에서의 사용에 대한 좋은 예를 제시하고 다른 메모리 클래스(기능)와 구별되는 점에 밑줄을 긋습니다. 이것은 쓸모없는 것 같습니다. 누가 알겠습니까?
 
myrzila :

배열이 다음 코드에서 보류 중인 주문 티켓으로 채워질지 여부를 알려주십시오.

정수 티켓[];

정수 세트펑크()

{

(i=0, i<=k-1, i++)

{
ticket[i]=OrderSend(Symbol(),OP_BUYSTOP,0.01*Lots,Ask+Step*i*Point,3,Bid-S_Loss*Point,0,"",10000,0,Green);

ticket[i+k]=OrderSend(Symbol(),OP_SELLSTOP,0.01*Lots,Bid-Step*i*Point,3,Ask+S_Loss*Point,0,"",10000,0,Green);

}

}

????
Print()를 통해 인쇄를 시도하면 0이 반환됩니다.

먼저 배열의 크기(ArrayResize)를 설정 한 다음 작업해야 합니다.
 

안녕하세요.

고문이 있습니다.

그림에 표시된 이동 평균 수준을 표시하려면 어떻게 해야 합니까?

이제 0만 표시됩니다.


//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
//----
SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0)-0.0015,0),빨강,10,20,0,20);
SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0),0),빨강,10,50,0,20);
//----
리턴(0);
}
//+----------------------------------------------- --------------------+


무효 SetLabel(문자열 nm, 문자열 tx, 색상 cl, int xd, int yd, int cr=0, int fs=9) {
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
ObjectSetText(nm, tx, fs);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_XDISTANCE, xd);
ObjectSet(nm, OBJPROP_YDISTANCE, yd);
ObjectSet(nm, OBJPROP_CORNER, cr);
ObjectSet(nm, OBJPROP_FONTSIZE, fs);
}




 
emilien :


안녕하세요.

고문이 있습니다.

그림에 표시된 이동 평균 수준을 표시하려면 어떻게 해야 합니까?

이제 0만 표시됩니다.


//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
//----
SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(), 13,30,8 ,MODE_SMA,PRICE_CLOSE,0)-0.0015,0),빨강,10,20,0,20);
SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(), 13,30,8 ,MODE_SMA,PRICE_CLOSE,0),0),빨강,10,50,0,20);
//----
리턴(0);
}
//+----------------------------------------------- --------------------+


무효 SetLabel(문자열 nm, 문자열 tx, 색상 cl, int xd, int yd, int cr=0, int fs=9) {
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
ObjectSetText(nm, tx, fs);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_XDISTANCE, xd);
ObjectSet(nm, OBJPROP_YDISTANCE, yd);
ObjectSet(nm, OBJPROP_CORNER, cr);
ObjectSet(nm, OBJPROP_FONTSIZE, fs);
}




이중 iMA (문자열 기호, int timeframe , int period, int ma_shift, int ma_method, int apply_price, int shift)

아직 타임프레임 13에 대해 들어본 적이 없습니다.