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

 
Artyom Trishkin :

영형! 고맙습니다. 아침에 스스로는 추측하지 못했습니다... 그러나 배열이 채워지는 것을 확인하는 것은 동일합니다. 상위 4위 안에는 본 적이 없고 상위 5위 안에는 이력 데이터가 부족해 처음에는 데이터가 채워지지 않는 경우가 많다.

추신. 더 많이 자야합니다. 그 방향의 생각이 효과가 있을 것입니다.

글쎄, 당신은 사이클에 넣을 수 있습니다

do while ( CopyOpen ( _Symbol , PERIOD_CURRENT , 1 , 15 , openCandle) < 0 );

또는

do while ( CopyOpen ( _Symbol , PERIOD_CURRENT , 1 , 15 , openCandle) < 15 );

요청한 금액이 정확히 복사되도록.


추신; 내가 차를 따르고 있는 동안 CopyRates() 및 MqlRates rate[] 구조의 배열을 사용하기 위한 또 다른 생각이 떠올랐지만 무언가를 다시 작성하는 것은 게으른 일입니다.

 
Alexey Viktorov :

글쎄, 당신은 사이클에 넣을 수 있습니다

do while ( CopyOpen ( _Symbol , PERIOD_CURRENT , 1 , 15 , openCandle) < 0 );

또는

do while ( CopyOpen ( _Symbol , PERIOD_CURRENT , 1 , 15 , openCandle) < 15 );

요청한 금액이 정확히 복사되도록.


추신; 내가 차를 따르고 있는 동안 CopyRates() 및 MqlRates rate[] 구조의 배열을 사용하는 또 다른 생각이 떠올랐지만 무언가를 다시 작성하는 것은 게으른 일입니다.

내가 제안한 거 아니야?
 
giannis1386 :
안녕하세요. 팔이 삐뚤빼뚤. 판매(slevel)를 위한 손절매 수표를 추가하는 데 도움을 주세요. 그런 다음 그는 가격을 따라잡습니다.
int start()
{
//+--------------------------------------------------------------------+
//|   -= stop loss в без убыток =-                                      |
//+--------------------------------------------------------------------+
bool    result;
double stop;
int     cmd,error;
for ( int i= 0 ;i< OrdersTotal ();i++)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderProfit ()>pOPCS)
{
cmd= OrderType ();
double blevel= OrderStopLoss ()< Bid - Point *TS;
double slevel= OrderStopLoss ()> Ask + Point *TS;
//---
if (cmd== OP_BUY || cmd== OP_SELL )
{
while ( true )
{
if (cmd== OP_BUY && blevel) stop= Bid - Point *TS;
else                       stop= Ask + Point *TS;
result= OrderModify ( OrderTicket (), OrderOpenPrice (),stop, 0 , 0 ,Orange);
if (result!= TRUE ) { error= GetLastError (); Print ( "LastError = " ,error); }
else error= 0 ;
if (error== 135 ) RefreshRates ();
else break ;
}
}
}
}

당신의 논리가 이상합니다. 그러나 이상한 논리를 보지 않더라도 :

여기에서 매수에 대해 두 가지 조건 을 확인하고 나머지 는 매도에 대해 확인했습니다.

if (cmd== OP_BUY && blevel ) stop= Bid - Point *TS;
else                        stop= Ask + Point *TS;
 
Artyom Trishkin :

당신의 논리가 이상합니다. 그러나 이상한 논리를 보지 않더라도 :

여기에서 매수에 대해 두 가지 조건 을 확인하고 나머지 는 매도에 대해 확인했습니다.

if (cmd== OP_BUY && blevel ) stop= Bid - Point *TS;
else                        stop= Ask + Point *TS;

나는 Sell slevel = OrderStopLoss ()> Ask + Point *TS를 위해 고정하려고 노력했습니다.

그러나 프로그래밍에서는 붐붐이 없었기 때문에 합리적인 일은 일어나지 않았습니다. 주 따기 포럼. 모든 시도는 Selovskiy 정류장이 가격과 함께 실행된다는 사실로 끝났습니다.

왜 이상한 논리입니까?) 코드는 완전히 내 것이 아닙니다. 내가 할 수 있는 최선을 다해 그것을 다시 했다

 
giannis1386 :

나는 Sell slevel = OrderStopLoss ()> Ask + Point *TS를 위해 고정하려고 노력했습니다.

그러나 프로그래밍에서는 붐붐이 없었기 때문에 합리적인 일은 일어나지 않았습니다. 주 따기 포럼. 모든 시도는 Selovskiy 정류장이 가격과 함께 실행된다는 사실로 끝났습니다.

왜 이상한 논리입니까?) 코드는 완전히 내 것이 아닙니다. 내가 할 수 있는 최선을 다해 그것을 다시 했다

그리고 먼저 매수 스톱과 매도 스톱을 이동해야 하는 조건을 연필로 종이에 씁니다.

그리고 그 다음에야 쓰여진 내용을 이해한 후 종이에 적힌 내용을 코드로 작성합니다.

 
Artyom Trishkin :

그리고 먼저 매수 스톱과 매도 스톱을 이동해야 하는 조건을 연필로 종이에 씁니다.

그리고 그 다음에야 쓰여진 내용을 이해한 후 종이에 적힌 내용을 코드로 작성합니다.

slevel= OrderStopLoss ()> 묻고 + 포인트 *TS; 음, 여기 마을과 같습니다. 아니면 정확하지 않습니까? 나는 이 사업에서 멍청하다.
 
giannis1386 :
slevel= OrderStopLoss ()> 묻고 + 포인트 *TS; 음, 여기 마을과 같습니다. 아니면 정확하지 않습니까? 나는 이 사업에서 멍청하다.

이 상태에서 무엇이라고 쓰여 있는지 이해합니까? 이것은 유형이 이중 인 변수에 0 또는 1을 할당하는 것입니다.

이것으로 무엇을 얻고 싶습니까?

 
Artyom Trishkin :

이 상태에서 무엇이라고 쓰여 있는지 이해합니까? 이것은 유형이 이중 인 변수에 0 또는 1을 할당하는 것입니다.

이것으로 무엇을 얻고 싶습니까?

여기 내가 읽은 것입니다.

상태 확인 - SL을 앞뒤로 움직이지 않고 한 방향으로만 이동

예를 들어, BUY 주문의 경우 공식은 다음과 같습니다.

OrderStopLoss ()< 입찰 포인트*TrailingStop

이 예에서 마을에 대한 리벳

 
giannis1386 :

여기 내가 읽은 것입니다.

상태 확인 - SL을 앞뒤로 움직이지 않고 한 방향으로만 이동

예를 들어, BUY 주문의 경우 공식은 다음과 같습니다.

OrderStopLoss ()< 입찰 포인트*TrailingStop

이 예에서 마을에 대한 리벳

따라서 다음이 필요합니다.

러시아어로... 중지 주문이 입찰 가격에서 후행 중지 거리의 크기를 뺀 값보다 작으면 ... 귀하의 행동

그리고 이 논리식 의 결과를 변수에 할당합니다. 즉, 0 또는 1입니다.

 
Artyom Trishkin :

따라서 다음과 같이 필요합니다.

러시아어로... 중지 주문이 입찰 가격에서 후행 중지 거리의 크기를 뺀 값보다 작으면 ... 귀하의 행동

그리고 이 논리식 의 결과를 변수에 할당합니다. 즉, 0 또는 1입니다.

나는 완전히 혼란스럽다.

더블 blevel= OrderStopLoss ()< 입찰 - 포인트 *TS; 나를 위해 작동합니다. SL은 이익으로만 가격을 따릅니다.

이중 slevel= OrderStopLoss ()> 묻기 + 포인트 *TS; 하지만 이것을 다른 것에 추가하는 방법을 모르겠습니다

나는 그들을 bool처럼 가지고 있지 않습니다.