오류, 버그, 질문 - 페이지 444

[삭제]  
Interesting :
거래 및 견적 세션이 문제 해결에 도움이 되지 않습니까?

불행하게도. 계약 사양에 따라 견적 세션은 월요일 00:00:00에 시작됩니다.
사실, 여기서 Rosh 는 인용 세션의 시작이 인용의 존재를 보장하지 않는다는 대답을 제공합니다. 원칙적으로 이해할 수 있습니다.

지금은 다음과 같은 형식으로 "목발"을 사용합니다.

 input int TTL = 10 ; // Время "жизни" котировки
...
void Trade() {
  ...
   if ( TimeCurrent () - SymbolInfoInteger (Instrumet, SYMBOL_TIME ) > TTL) return ;
  ...
   // Далее отправка торгового приказа на сервер.
}

누군가 더 우아한 솔루션을 공유할 수 있다면 감사하겠습니다(모든 다중 통화 거래자는 이 문제를 해결해야 했습니다).

추신
Konstantin Gruzdev 는 자신의 기사 MetaTrader 5에서 다중 통화 모드 구현 에서 우아한 변형을 제안했습니다.
그러나 챔피언십에서 이 옵션은 요구 사항에 따라 통과하지 않습니다.

 
voix_kas :

Yyy ... 신경을 건드렸다. :)) 포럼 게시물에 있는 수동 규칙의 마지막 줄, 그래서 용서할 수 있습니다. =)
그건 그렇고, 귀하의 코드도 컴파일되지 않습니다(마지막 줄에서 닫는 괄호를 잊어버렸습니다). :-아르 자형
또한 2~3배 느리게 작동하며(이제 스크립트에서 측정했습니다) 검사 품질은 동일합니다. :-아르 자형

일반적으로 유효 최하위 숫자를 결정하기 위한 적절한 코드는 없지만 Composter의 조언을 사용하겠습니다. 볼륨을 소수점 이하 8자리로 정규화합니다.
함정이 없기를 바랍니다.

:)
 
voix_kas :
OrderCheck 가 도움이 되지 않습니까?


 

돕다:

Функцию Sleep() нельзя вызывать из пользовательских индикаторов , так как индикаторы выполняются в интерфейсном потоке и не должны его тормозить.

여전히, 절대적으로, 절대적으로 불가능하거나, 정말로 원한다면 할 수 있지만 조심스럽게? :)


표시기에서 다른 기호의 데이터에 액세스하는 데 문제가 있습니다.

틱이 없는 경우)

[삭제]  
Swan :
OrderCheck가 도움이 되지 않습니까?

아니요. 거래하기 전에 다음과 같이 작성합니다.

 if (! OrderCheck (TradeRequest, TradeCheckResult) || (TradeCheckResult.retcode != TRADE_RETCODE_DONE )) return ;

로그에 여전히 오류가 있습니다. :(

 

로트의 정상화를 추구하면서

얘들아, 왜 이론화해?

로트 스텝이 최소 로트보다 큰 상황은 터무니없다. 음, 상상해보십시오. min = 0.1, stride = 1.0입니다. 그리고 1.1, 2.1, 3.1, ... 로트만 허용됩니까? 헛소리야.

당신이 산술과 프로그래밍을 연습한다면 당신의 선택이 승리할 것입니다. 그러나 우리가 적용(거래 의미에서) 프로그래밍에 대해 이야기하고 있다면, lot_step > lot_min을 사용하여 심각한 오류 로 프로그램을 완료하고 긴급하게 브로커를 변경해야 합니다. 서버를 제대로 구축할 수 있는 사람에게 지불할 만큼의 돈조차 없습니다 ;)

모든 것이 적당해야 합니다. 제 버전은 5년 이상 동안 다양한 브로커, 계좌 유형, 수단을 사용하여 실제 돈으로 작업해 왔습니다. 단 한 번도 실수가 없었습니다.
Документация по MQL5: Программы MQL5 / Ошибки выполнения
Документация по MQL5: Программы MQL5 / Ошибки выполнения
  • www.mql5.com
Программы MQL5 / Ошибки выполнения - Документация по MQL5
[삭제]  

퇴비
왜 말도 안 돼? 간단한 예를 들어보겠습니다. 최소 로트 = 1.0, 최소 단계 = 0.3. 요구 사항은 "부조리"(min_lot >= lot_step)의 원칙을 충족합니다. :)
정규화 함수에 1.3 랏의 볼륨을 전달합니다. 그것에서 1.2 랏이 반환됩니다.
업그레이드된 버전은 1.3을 반환합니다. 그 단계는 0이 아닌 최소 로트에서 "올바르게" 진행됩니다.

또 다른 문제는 " 1 .0, 0.1 , 0.0 1 " 이외의 단계가 "생활에" 존재한다는 것입니다.
여기에서 문제의 가격(성능 손실)은 가능한 가상 오류의 솔루션과 비교할 때 무시할 수 있는 것 같습니다. 임호.
결국, 계산하는 것이 더 정확합니다. 최소 로트의 단계가 아니라 0의 단계입니다.

 
우연하게도 주어진 금액(예: 1234.56달러가 유일한 입력 매개변수임)에 대해 현재 기호와 가격에 대해 가능한 최대 로트 수를 구매하는 기성품 코드 가 없습니다. 내부에는 최대, 최소 거래량 , 정상화, 레버리지 계산, 자금 충분 여부 등에 대한 모든 종류의 확인이 있어야 합니다. 등. 가장 중요한 것은 코드가 구매를 하고 돈이 없다는 사실(가능한 한 많이 구매), 어떤 종류의 수표가 통과하지 못했다(통과), 주문이 배치되었지만 구매가 없었습니다(다이, 구매하지 않고 반환하지 않음) 등. 나는 그것이 CTrade와 같은 클래스의 어딘가에 있다는 것을 이해합니다. 하지만 갑자기 거기에서 무언가를 복사하는 것은 그리 쉬운 일이 아닙니다. MQL5 언어가 아닌 나만의 알고리즘으로 작업하고 싶습니다.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
voix_kas :

아니요. 거래하기 전에 다음과 같이 작성합니다.

로그에 여전히 오류가 있습니다. :(

나는 챔피언십 계정에서 모든 악기가 동시에 거래되는 것을 보았습니다. 등록하다)


TradeCheckResult.retcode != TRADE_RETCODE_DONE

어쩐지 이게 맞는지 모르겠다.


당신은 또한 시도할 수 있습니다:

if( 현재 가격 == 0.0) 반환;

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
voix_kas :

퇴비
왜 말도 안 돼? 간단한 예를 들어보겠습니다. 최소 로트 = 1.0, 최소 단계 = 0.3. 요구 사항은 "부조리"(min_lot >= lot_step)의 원칙을 충족합니다. :)
정규화 함수에 1.3 랏의 볼륨을 전달합니다. 그것에서 1.2 랏이 반환됩니다.
업그레이드된 버전은 1.3을 반환합니다. 그 단계는 0이 아닌 최소 로트에서 "올바르게" 진행됩니다.

또 다른 문제는 " 1 .0, 0.1 , 0.0 1 " 이외의 단계가 "생활에" 존재한다는 것입니다.
여기에서 문제의 가격(성능 손실)은 가능한 가상 오류의 솔루션과 비교할 때 무시할 수 있는 것 같습니다. 임호.
결국, 계산하는 것이 더 정확합니다. 최소 로트의 단계가 아니라 0의 단계입니다.

"최소 로트 = 1.0, 최소 단계 = 0.3" - 이것도 말도 안 됩니다. 단계는 분의 배수여야 합니다. 많은.

나는 이미 내 의견을 표명했습니다. 수학자와 프로그래머의 경쟁에서 min_lot 빼기 옵션이 이기고 실제 거래에는 필요하지 않습니다.

나는 더 이상 논의할 주제가 보이지 않고, 모두가 각자의 자리에 머물렀다.)