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

 
dyxaa :

사람들은 n 이후에 보류 중인 주문을 닫을 수 있는 방법을 알려줍니다. 작동하지 않는 경우 포인트 수는 무엇입니까?

닫을 수는 없지만 삭제할 수는 있습니다 .

 

나는 교육 목적으로 지표를 그리고 (즉, 나는 공부한다) 데이터를 변경하면 다음과 같은 결과를 얻습니다.


빨간색과 파란색 선은 서로 부드럽게 전환되지 않습니다.

왜 이런 일이 발생합니까? 그리고 그것을 우회하는 방법?

   for (i = limit; i >= 0 ; i--) 
    {
     cciTrendNow      = iCCI ( NULL , 0 , CCIPeriod, PRICE_TYPICAL , i);
     cciTrendPrevious = iCCI ( NULL , 0 , CCIPeriod, PRICE_TYPICAL , i+ 1 );

     if (cciTrendNow > st && cciTrendPrevious < st)
      {
       TrendUp[i+ 1 ] = TrendDown[i+ 1 ];
       ArrayInitialize ( TrendDown[i+ 1 ], 0 ); // Попытался обнулить, чтобы обойти некрасивую отрисовку.
      }

     if (cciTrendNow < st && cciTrendPrevious > st) 
      {
       TrendDown[i+ 1 ] = TrendUp[i+ 1 ];
       ArrayInitialize ( TrendUp[i+ 1 ], 0 );   // Попытался обнулить, чтобы обойти некрасивую отрисовку.
      }
    }

문제는 코드의 이 섹션에서 나타납니다. 그러나 그것을 극복하는 방법 - 나는 스스로 무언가를 찾거나 생각해 낼 수 없었습니다. 말해 주세요.

 
dyxaa :

사람들은 작동하지 않는 경우 포인트 수인 n 이후에 보류 중인 주문을 닫는 방법을 알려줍니다.

십자가를 클릭하십시오!
 
artmedia70 :

나는 외부 변수에 대해 말하지 않았다. 제가 얘기한 내용입니다.

상황을 상상해 봅시다. 마지막 오픈 포지션의 데이터에 따라 결정을 내릴 필요가 있습니다.


테스터의 경우:

마지막 열린 위치에 필요한 데이터를 저장할 변수를 만듭니다.

새 위치가 열리면 즉시 필요한 데이터를 이러한 변수에 넣습니다.

다음 포지션을 오픈하라는 신호가 도착하면(예: 테스트 20분 후), 오픈할 포지션의 데이터에 대한 결정을 내리는 몇 가지 기준을 확인해야 합니다. 조건에 따라 이 기준은 이전의 열린 위치에 따라 다릅니다. 변수에서 읽고(마지막 열 때 저장) 새 위치에 대한 추가 데이터로 사용합니다.

포지션을 열 때 새로 열린 포지션에 대한 새로운 데이터를 변수에 저장합니다.


진짜:

같은 상황을 상상해 보겠습니다. 하지만 ... 마지막 위치를 열고 해당 데이터를 변수에 저장한 후 10분이 지났다고 상상해 봅시다. 상황)). 그리고 이 기간 동안 어드바이저가 어떤 이유로 재부팅되었습니다.

EA를 다시 시작한 후 변수에 저장된 마지막 열린 위치 데이터는 어떻게 됩니까? 그들은하지 않습니다.

그럼 어디로 데려가야 할까요? 맞습니다 - 검색하십시오. 이를 위해서는 필요한 데이터를 검색하는 기능이 필요하다. 따라서 실제 생활에서는 필요할 때 모든 것을 즉시 찾고 변수에 저장하지 않는 것이 훨씬 더 쉽고 빠릅니다.


설명이 늦어 죄송합니다-방금 나왔습니다 ... :))



Artyom 감사합니다. 물론 모든 것이 논리적입니다. 그래서 함수를 작성하는 법을 배우고 있습니다. 때로는 논리가 절름발이일 뿐입니다. 여기에서 내가 걸려 넘어진다. 마지막으로 한 기능에서 다른 기능으로 모든 주기 데이터를 인쇄하여 문제가 해결되었을 때 모든 것이 안정될 수 있도록 며칠 동안 일반적인 프로그래밍을 쉬었습니다. 이제 계속하겠습니다!
 
solnce600 :

Misters는 이러한 알고리즘을 코딩 하는 주기를 통해 프롬프트를 표시합니다.

if (iLow (Symbol (),0, 1 ) > iLow (Symbol (),0, 10 )) // 첫 번째 캔들의 LOW > 10번째 캔들의 LOW인 경우

OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-2950*Point,Bid+150*Point,"jfh",123); //오픈 오더.

그리고 나는 필요하다

낮음 1과 동시에 낮음 2와 동시에 낮음 3....... ... 동시에 낮음 9 양초 > 낮음 10 양초(즉 , 1에서 9까지의 낮은 양초)

                                                                                                                                             //오픈 오더.

고맙습니다.

그래도 귀하의 질문을 올바르게 들었다면 코드는 다음과 같을 것입니다.

 bool have = true ;

for ( int i= 0 ; i< 10 ; i++)
  {
   if (Low[i] > Low[ 10 ])        // Как вариант:  if ( iLow(Symbol(),0, i ) > iLow(Symbol(),0, 10 ) )
    {
     have = false ;
     break ;
    }
  }

if (have) OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-2950*Point,Bid+150*Point,"jfh",123 );    //открыть ордер.

그러나 이것은 FAQ 프롬프트에서 가져온 것입니다. 그가 없었다면 성공하지 못했을 것입니다.

 

아이디어는 있었지만 실생활에서 어떻게 하고 실생활에서 어떻게 안정적으로 작동할 것인지는 잘 모르겠습니다.

요점은 이것입니다. 바가 닫힌 직후, 즉, 차트에 올빼미를 넣은 후 시장에 진입해야 합니다. 새로운 오프닝에서. 첫 주문용입니다. 또한 주문이 TP 또는 Stop으로 마감되면 새로운 바가 열리면 즉시 주문도 열립니다. 이 작업을 수행하는 가장 현명한 방법은 무엇입니까?

제가 알기로는 변수를 생성해야 합니다. 현재 바 시가를 그 안에 넣습니다. 그리고 이 값을 현재 막대의 시작 가격과 비교합니다. 변수 값이 인덱스가 0인 현재 막대의 시가 값과 같지 않으면 주문을 엽니다.

이것이 최선의 선택입니까?

 
Chiripaha :

나는 교육 목적으로 지표를 그리고 (즉, 나는 공부한다) 데이터를 변경하면 다음과 같은 결과를 얻습니다.


빨간색과 파란색 선은 서로 부드럽게 전환되지 않습니다.

왜 이런 일이 발생합니까? 그리고 그것을 우회하는 방법?

문제는 코드의 이 섹션에서 나타납니다. 그러나 그것을 극복하는 방법 - 나는 스스로 무언가를 찾거나 생각해 낼 수 없었습니다. 말해 주세요.


휴!... 알았어요... :)))

이제 다른 모든 것을 처리하는 것이 좋습니다. 도움을 원하셨던 모든 분들, 감사합니다! :))

나는 정확히 같은 버퍼 2개를 더 엽니다. 그들은 그려지지 않았습니다 ... 어떤 종류의 요술 ... - 좋아, 우리는 연구하고 검색할 것입니다. "위대함"에 시간을 낭비하는 것은 유감이지만. 새로운 것을 발명해야 할 때는 언제입니까?

 
hoz :

아이디어는 있었지만 실생활에서 어떻게 하고 실생활에서 어떻게 안정적으로 작동할 것인지는 잘 모르겠습니다.

요점은 이것입니다. 바가 닫힌 직후, 즉, 차트에 올빼미를 넣은 후 시장에 진입해야 합니다. 새로운 오프닝에서. 첫 주문용입니다. 또한 주문이 TP 또는 Stop으로 마감되면 새로운 바가 열리면 즉시 주문도 열립니다. 이 작업을 수행하는 가장 현명한 방법은 무엇입니까?

제가 알기로는 변수를 생성해야 합니다. 현재 바의 시가를 그 안에 넣습니다. 그리고 이 값을 현재 막대의 시작 가격과 비교합니다. 변수 값이 인덱스가 0인 현재 막대의 시가 값과 같지 않으면 주문을 엽니다.

이것이 최선의 선택입니까?


구현하면 실생활에서 데모처럼 안정적으로 작동합니다. 그러나 그것이 수익성이 있다는 사실은 아닙니다.

새로운 막대 모양을 통해 구현합니다. 그러나 어떤 방향으로 열려 있고 어떤 조건에서 이 면이 결정되는지 공식화하지 않았습니다.

아무것도 비교할 필요가 없습니다. 새 막대가 나타날 때(입력한 내용을 기반으로 함) 주문을 시작해야 하고 그게 전부입니다.

newBars = iBarShift( Symbol (), PERIOD_H1 , lastH1BarTime);    // Это было найдено через поиск на форуме

상상할 수 없는 경우:

"그리고 경험은 어려운 실수의 아들이다.
그리고 천재는 역설의 친구입니다 "(Alexander Sergeevich가 당신을 도와줍니다)

부엉이를 만들어(쓰기) 실험적으로 확인해야 합니다. -누군가 당신을 위해 올빼미를 쓸 것 같지 않습니다 (무료). 제안하는 것은 한 가지입니다. 그러나 실천할 아이디어(생각)는 더 이상 도움이 아니라 작동합니다.

 
borilunad :
십자가를 클릭하십시오!

글쎄, 정확히. 독창적으로 간단합니다)))

도와주세요) 보류 중인 주문을 할 것입니다. 예를 들어, 구매를 중지 하겠습니다. 예를 들어 가격이 100포인트 내려가면 제거되도록 해야 합니다. 이 작업을 수행할 수 있습니까?

 
borilunad :
십자가를 클릭하십시오!

글쎄, 정확히. 독창적으로 간단함)))

도와주세요) 보류 중인 주문을 할 것입니다. 예를 들어, 구매를 중지 하겠습니다. 예를 들어 가격이 100포인트 내려가면 제거되도록 해야 합니다. 이 작업을 수행할 수 있습니까?