[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 555

 
granit77 >> :
Лот и магик никто не имеет права трогать, а к комментарию на хвост будет дописка брокера. Но свой комментарий всегда можно найти поиском подстроки.

포럼 어딘가에서 원칙적으로 의견은 브로커로 완전히 대체될 수 있다는 것을 읽었습니다. 저것들. 결과적으로 Expert Advisor는 한 브로커에서는 정상적으로 작동하고 다른 브로커에서는 완전히 잘못 작동합니다. 마법을 생성하려면 모든 "불변" 매개변수가 필요합니다. 그래서 확실히 손대지 않은 것들만 사용하고 싶어요.

 
drknn >> :

당신은 당신의 신호가 반전까지 뻗어있다고 말합니다. 그러나 이 또한 우회할 수 있습니다. 시장에 주문이 없습니다. 신호가 있는지 확인합니다. 신호가 나타났습니다 - 포지션을 열고 신호 플래그를 제거하고(변수 재설정) 반대 신호(짧은 신호)가 나타날 때까지 신호(예: 긴 신호)의 존재를 더 이상 확인하지 않습니다. 따라서 주어진 유형의 신호 존재 플래그는 일반적으로 몇 초 동안 작동합니다. 플래그가 설정되고 순서가 설정되고 플래그가 제거됩니다. 반대 신호를 기다리고 있습니다. 반대가 발생했습니다. 반대 신호의 플래그를 설정하고 이전에 추적이 금지된 신호를 추적하기 위해 진행을 제공하는 플래그를 설정합니다.

Expert Advisor의 시작(start() 함수가 아니라 작업 시작일 때만):

- 긴 신호와 짧은 신호를 모두 추적하도록 진행합니다.

긴 신호가 나타났습니다.

- 짧은 신호를 추적할 수 있는 권한 부여

- 우리는 긴 주문을 넣었고 이 주문이 끝나면

- 긴 신호를 추적할 수 있는 플래그를 제거합니다.

짧은 신호가 나타났습니다

- 주문을 확장할 수 있는 권한이 있는 경우 긴 주문을 닫고 짧은 주문을 설정합니다.

- 긴 신호를 추적할 수 있는 권한을 부여하는 플래그를 설정하고 짧은 신호를 추적할 수 있는 권한을 부여하는 플래그를 제거합니다.

일반적으로 플래그는 스위치입니다. 스위치가 아니라 스위치를 디자인할 수도 있습니다. 이 경우 고문은 어떤 상태인지 기억하는 사이버네틱 오토마톤의 원리에 대해 작업하기 시작합니다. 이는 예를 들어 정수 변수를 선언하고 여기에 상태 번호를 할당하여 달성할 수 있습니다. 예를 들어 초기화 블록에서 다음과 같이 작성합니다.

소스토자니=0;

그러나 이미 시작 단계에서 어드바이저는 0 상태(if(Sostojanie==0){})에서 어드바이저가 작업 A, B 및 C만 수행할 수 있다는 것을 알고 있습니다. 그리고 다음 중 하나 이상의 결과에 따라 이러한 작업은 고문이 현재 상태를 유지할지 여부를 선택하거나 (Sostojanie=1;//또는 2 또는 3 등) 또는 그 반대로 선택할 상태를 선택하는 것입니다.

각 상태에서 고문은 자신이 할 수 있는 것과 할 수 없는 것과 다른 상태로 전환해야 하는 조건을 알고 있습니다.

좋은 아이디어 주셔서 감사합니다. 나는 확실히 걸릴 것이다 ...
행운을 빕니다!
 
왜 이 디자인이 작동하지 않습니까? 이중 tmp=묻기; 동안(요청<=tmp) tmp=요청; 루프를 종료하지 않습니다. 즉, Ask는 항상 tmp와 같습니다. RefreshRates()도 도움이 되지 않습니다. 뭐가 문제야 말해봐
 

테스터라면 작동하지 않을 것이고, 전투 상황이라면 루프 안에 Sleep() 을 넣어라.

 
실생활에서 통할까?.. 그렇다면 반침대 테스터에서 ETO를 작동시키는 방법은 무엇입니까?
 

코드를 봐야 합니다. 그렇지 않으면 추측일 뿐입니다. 저는 초능력자가 아닙니다.

 
이중 tmp=묻기; 동안(요청<=tmp) tmp=요청; 인쇄 ("작동했습니다!"); 여기 전체 코드가 있습니다
 

테스터를 위해 당신은 할 수 있습니다

 double tmp=Ask; 
if (Ask<=tmp) 
  {
  tmp=Ask; 
   Print ( "ЕТО ЗАРАБОТАЛО!" ); 
  }
 
나는 조건이 아니라 주기가 필요합니다 ... 나는 동안이 필요합니다 (이 일이 일어날 때까지 더 이상 진행하지 마십시오. 그러나 Ask <= tmp가 항상 할 수 없기 때문에 이것은 일어날 것입니다)
 
maryan.dirtyn >> :
мне нужен именно цикл
 double tmp= 0 ; 
while (Ask<tmp || Ask>tmp){ // цикл выполняется до тех пор, пока условие истинно
                          //именно фактор наличия истины в условии запускает цикл в работу и держит его во включенном состоянии
  RefreshRates(); // проверяем поступление новой котировки
  if (tmp!=Ask){ //пришла новая котировка
    tmp=Ask; // выполняем какие-то действия...
    Print ( "ЕТО ЗАРАБОТАЛО!" );
    break ; //выходим из цикла после почти бесконечного числа итераций, которые тупо пригрузили мой проц
  }
}

가능하고 break를 사용하지 않습니다. 루프 반복 흐름의 강제 중단 가능성을 잊지 않기 위해서만 지적했습니다.