초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1340 1...133313341335133613371338133913401341134213431344134513461347...1503 새 코멘트 Kira27 2021.08.30 01:39 #13391 그래서 스크립트는 void OnStart () { int Target= 6 ; //Количество тайм-фреймов int Counter_UP= 0 ; //Счетчик нахождения цены над МА int Counter_DOWN= 0 ; int MA = 200 ; //Период МА double bufer_MA[]; //Буфер для хендла ENUM_TIMEFRAMES frame1[ 10 ]; //Битная маска тайм-фреймов //___________________int битная маска ENUM Массив таймфреймов__________________________________________ frame1[ 1 ]= 1 ; frame1[ 2 ]= 5 ; frame1[ 3 ]= 15 ; frame1[ 4 ]= 30 ; frame1[ 5 ]= 16385 ; frame1[ 6 ]= 16388 ; frame1[ 7 ]= 16408 ; frame1[ 8 ]= 32769 ; frame1[ 9 ]= 49153 ; //____________________________________________________________________________________________________________ int KollSymbols = SymbolsTotal ( true ); //Колл. символов в маркет вотч Alert ( "Колл.Инстр = " ,KollSymbols); //--- int MA200; //Переменная для хендла for ( int i= 0 ; i<KollSymbols; i++) //Перебераем все символы из маркет вотч { string symbol = SymbolName (i, true ); //Выбираем имя символа из маркет вотч // Alert("symbol = ",symbol,"i= ",i); for ( int I= 1 ; I<=Target; I++) //Перебераем таймфреймы { MA200 = iMA (symbol,frame1[I],MA, 0 , MODE_EMA , PRICE_MEDIAN ); //хендл на выбранном тайме CopyBuffer (MA200, 0 , TimeCurrent (), 5 ,bufer_MA); // заполнение масива bufer_MA хендлом MA200 выбранного тайма ArraySetAsSeries (bufer_MA, true ); //Разворачиваем массив как в тайм-серии //Alert("Символ - ",symbol,"i= ",i); // Alert("Simbol = ",symbol," bufer_MA[1] = ",bufer_MA[1]); if ( iClose (symbol,frame1[I], 1 ) > bufer_MA[ 1 ]) //Если цена 1 баре, на выбранном символе и тайме, БОЛЬШЕ цены скользяхи на 1 баре { //Alert("iClose= ",iClose(symbol,frame1[I],1), " bufer_MA[1]= ",bufer_MA[1]); Counter_UP++; if (Counter_UP==Target) Alert ( "Инструмент для наблюдения в покупки - " ,symbol); ArrayFree (bufer_MA); //Очистка буфера индикатора } else { ArrayFree (bufer_MA); //Очистка буфера индикатора } IndicatorRelease (MA200); //Удаление хендла } Counter_UP= 0 ; Counter_DOWN= 0 ; } } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ 작동 규범. 그리고 22개의 instr 목록. 꽤 오랜 시간 동안 프로세스 분 5. 이것은 이상하지만. 그는 대부분의 시간을 배열에 대한 핸들을 작성하는 데 보냅니다. 프로파일링 요약 문제. 목록에서 22개의 기기에 대해 복사가 132번 발생하지만 핸들에서 배열로 5개의 값을 복사하는 데 왜 그렇게 시간이 많이 소요됩니까? 즉, 273개의 악기에 대해 1632번 복사해야 하며 모든 악기에 대한 기록을 하드 컴퓨터에 로드해야 합니다. Kira27 2021.08.30 01:40 #13392 Fast235 # : 핸들 생성 및 삭제 정보, 작동합니다. 올바른 방법에 관심이 있습니다. 개발자가 말하기를 바랍니다. 여기에서 나는 그것을하고 있습니다. 위의 코드를 보면 질문도 있습니다)) Aleksandr Slavskii 2021.08.30 16:13 #13393 Kira27 # : 그래서 스크립트는 작동 규범. 그리고 22개의 instr 목록. 꽤 오랜 시간 동안 프로세스 분 5. 이것은 이상하지만. 그는 대부분의 시간을 배열에 대한 핸들을 작성하는 데 보냅니다. 프로파일링 요약 문제. 목록에서 22개의 기기에 대해 복사가 132번 발생하지만 핸들에서 배열로 5개의 값을 복사하는 데 왜 그렇게 시간이 많이 소요됩니까? 즉, 273개의 악기에 대해 1632번 복사해야 하며 모든 악기에 대한 기록을 하드 컴퓨터에 로드해야 합니다. 당신이 아무것도 망치지 않았다면. 따옴표가 업로드되면 잘 작동하는 것 같습니다. 그러면 속도가 느려지지 않습니다. 첫 번째 실행은 매우 길며 인용문을 다운로드하는 것 같습니다. //+------------------------------------------------------------------+ void OnStart () { int Target = 6 ; //Количество тайм-фреймов int Counter_UP = 0 ; //Счетчик нахождения цены над МА int Counter_DOWN = 0 ; int MA = 200 ; //Период МА double bufer_MA[]; //Буфер для хендла int MA200[][ 9 ]; //Переменная для хендла string symbol[]; ENUM_TIMEFRAMES frame1[ 9 ]; //Битная маска тайм-фреймов //___________________int битная маска ENUM Массив таймфреймов__________________________________________ frame1[ 0 ] = 1 ; frame1[ 1 ] = 5 ; frame1[ 2 ] = 15 ; frame1[ 3 ] = 30 ; frame1[ 4 ] = 16385 ; frame1[ 5 ] = 16388 ; frame1[ 6 ] = 16408 ; frame1[ 7 ] = 32769 ; frame1[ 8 ] = 49153 ; //____________________________________________________________________________________________________________ int KollSymbols = SymbolsTotal ( true ); //Колл. символов в маркет вотч Print ( "Колл.Инстр = " , KollSymbols); int res = 0 ; for ( int i = 0 ; i < KollSymbols; i++) { for ( int I = 0 ; I < 9 ; I++) //Перебераем таймфреймы { ArrayResize (MA200, i + 1 ); ArrayResize (symbol, i + 1 ); symbol[i] = SymbolName (i, true ); //Выбираем имя символа из маркет вотч MA200[i][I] = iMA (symbol[i], frame1[I], MA, 0 , MODE_EMA , PRICE_MEDIAN ); //хендл на выбранном тайме if (MA200[i][I] == INVALID_HANDLE ) PrintFormat ( "Инвалид хэндл, символ %s, тайм %d" , symbol[i], frame1[I]); res++; } } Print ( "Создано хэндлов = " + ( string )res); //--- for ( int i = 0 ; i < KollSymbols; i++) { for ( int I = 0 ; I < 9 ; I++) //Перебераем таймфреймы { int size = CopyBuffer (MA200[i][I], 0 , 1 , 1 , bufer_MA); // заполнение масива bufer_MA хендлом MA200 выбранного тайма PrintFormat ( "Скопировано %d, символ %s, тайм %d" , size, symbol[i], frame1[I]); if (size > 0 ) if ( iClose (symbol[i], frame1[I], 1 ) > bufer_MA[ 0 ]) //Если цена 1 баре, на выбранном символе и тайме, БОЛЬШЕ цены скользяхи на 1 баре { Counter_UP++; } } } Print ( "Counter_UP = " + ( string )Counter_UP); } //+------------------------------------------------------------------+ Aleksei Stepanenko 2021.08.30 23:41 #13394 Kira27 # : 스크립트의 의미는 1분에서 4시간 사이의 시간대에 시장 시계에서 각 상품을 분류하는 것입니다. 이렇게 하면 배열을 만들고 과거 데이터를 저장하고 현재 데이터를 업데이트합니다. 이것은 무거운 루프와 CopyBuffer를 피할 것입니다. 모든 것이 날아갈 것입니다. Kira27 2021.08.31 00:33 #13395 Aleksandr Slavskii # : 당신이 아무것도 망치지 않았다면. 따옴표가 업로드되면 속도가 느려지지 않고 잘 작동하는 것 같습니다. 첫 번째 실행은 매우 길며 인용문을 다운로드하는 것 같습니다. 응답과 성능 버전에 감사드립니다. 실험해 보겠습니다.) 왜 프로그램이 끝나기 전에 핸들을 삭제하지 않는지 이해가 되지 않습니까? 또는 프로그램 종료 시 자동으로 삭제됩니다. 요원은 작업 관리자의 판단에 따라 석방되지는 않지만. Kira27 2021.08.31 00:34 #13396 Aleksei Stepanenko # : 이렇게 하면 배열을 만들고 과거 데이터를 저장하고 현재 데이터를 업데이트합니다. 이것은 무거운 루프와 CopyBuffer를 피할 것입니다. 모든 것이 날아갈 것입니다. 고맙습니다! 나도 생각해볼게) Aleksandr Slavskii 2021.08.31 10:21 #13397 Kira27 # : 응답과 성능 버전에 감사드립니다. 실험해 보겠습니다.) 왜 프로그램이 끝나기 전에 핸들을 삭제하지 않는지 이해가 되지 않습니까? 또는 프로그램 종료 시 자동으로 삭제됩니다. 요원은 작업 관리자의 판단에 따라 석방되지는 않지만. 스크립트가 완료되면 일정 시간이 지나면 표시기 핸들이 삭제된다는 글을 어디선가 본 것 같습니다. 그러나 그것은 정확하지 않습니다. pips 2021.09.05 03:14 #13398 좋은! 후 방법을 알려주세요 MQL5에서 Expert Advisor 를 테스트할 때 화살표 위로 마우스를 가져가면 팝업 창에 통계가 표시됩니까? Mikhail Rudyk 2021.09.07 17:04 #13399 여보세요 터미널에 선형 회귀 도구가 있습니다. 그래픽 개체로 동일한 채널을 그리는 스크립트가 있습니다. 그러나 중심선만 올바르게 그려지고 편차선은 중심에서 잘못된 거리에 그려집니다. 터미널과 같도록 편차를 계산하는 올바른 공식을 아는 사람이 있는지 알려주십시오. 또는 누군가가 해결책을 가지고 있습니까 감사합니다 Dmitrii Solovei 2021.09.09 11:35 #13400 안녕하세요! AMarkets 브로커로 테스트할 때 암호화폐 에서 OrderSend 기능 이 작동하지 않는 이유를 알려주세요. 규정에 따르면 지하실에서 거래 고문에 대한 금지 사항을 찾지 못했습니다. 아니면 코드에 오류가 있습니까? GetLastError에서 오류 4756이 발생합니다. #property copyright "qwerty" #property link "qwerty@list.ru" #property version "1.00" //----------------- //----------------- #include <Trade\PositionInfo.mqh> #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh> #include <Trade\AccountInfo.mqh> //----------------- //----------------- CPositionInfo aPosition; CTrade aTrade; CSymbolInfo aSymbol; CAccountInfo aAccount; //----------------- //----------------- int Slippage = 3000 ; //--- //--------------------------------- //------пробные переменные double LotsCrypto = 0 ; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { if (!aSymbol.Name( Symbol ())) return ( INIT_FAILED ); RefreshRates(); //---устанавливаем допустимое проскальзывание aTrade.SetDeviationInPoints(Slippage); return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit ( const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick () { RefreshRates(); LotsCrypto = 0.1 ; if (OpenSellPosition(aSymbol.Name(), LotsCrypto, NULL , Slippage, ORDER_FILLING_RETURN )) Print ( "Ура" ); Comment ( "Symbol.Name = " + string (aSymbol.Name()) + "\n" + "Ask = " + string (aSymbol.Ask()) + "\n" + "GetLastError = " + string ( GetLastError ()) + "\n" + "LotsCrypto = " + string (LotsCrypto)); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+ Обновление котировок + //+------------------------------------------------------------------+ bool RefreshRates() { if (!aSymbol.RefreshRates()) { Print ( "Не удалось обновить котировки валютной пары!" ); return ( false ); } if (aSymbol.Ask() == 0 || aSymbol.Bid() == 0 ) return ( false ); return ( true ); } //+------------------------------------------------------------------+ bool OpenSellPosition( string symbol, double volume, string comment= "" , ulong deviation= 1000 , ENUM_ORDER_TYPE_FILLING filling= ORDER_FILLING_FOK ) { MqlTradeRequest Request; MqlTradeResult Results; ZeroMemory (Request); ZeroMemory (Results); Request.price= SymbolInfoDouble ( _Symbol , SYMBOL_BID ); Request.action= TRADE_ACTION_DEAL ; Request.type= ORDER_TYPE_SELL ; Request.symbol=symbol; Request.volume=volume; Request.deviation=deviation; Request.comment=comment; Request.type_filling=filling; bool res= false ; res= OrderSend (Request,Results); if (res) { if (Results.deal> 0 ) return ( true ); else return ( false ); } return ( false ); } //+------------------------------------------------------------------+ 1...133313341335133613371338133913401341134213431344134513461347...1503 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
작동 규범. 그리고 22개의 instr 목록.
꽤 오랜 시간 동안 프로세스 분 5. 이것은 이상하지만. 그는 대부분의 시간을 배열에 대한 핸들을 작성하는 데 보냅니다. 프로파일링 요약 
문제. 목록에서 22개의 기기에 대해 복사가 132번 발생하지만 핸들에서 배열로 5개의 값을 복사하는 데 왜 그렇게 시간이 많이 소요됩니까? 즉, 273개의 악기에 대해 1632번 복사해야 하며 모든 악기에 대한 기록을 하드 컴퓨터에 로드해야 합니다.
핸들 생성 및 삭제 정보,
작동합니다. 올바른 방법에 관심이 있습니다. 개발자가 말하기를 바랍니다.
여기에서 나는 그것을하고 있습니다. 위의 코드를 보면 질문도 있습니다))
그래서 스크립트는
작동 규범. 그리고 22개의 instr 목록. 꽤 오랜 시간 동안 프로세스 분 5. 이것은 이상하지만. 그는 대부분의 시간을 배열에 대한 핸들을 작성하는 데 보냅니다. 프로파일링 요약
문제. 목록에서 22개의 기기에 대해 복사가 132번 발생하지만 핸들에서 배열로 5개의 값을 복사하는 데 왜 그렇게 시간이 많이 소요됩니까? 즉, 273개의 악기에 대해 1632번 복사해야 하며 모든 악기에 대한 기록을 하드 컴퓨터에 로드해야 합니다.
당신이 아무것도 망치지 않았다면.
따옴표가 업로드되면 잘 작동하는 것 같습니다. 그러면 속도가 느려지지 않습니다. 첫 번째 실행은 매우 길며 인용문을 다운로드하는 것 같습니다.
스크립트의 의미는 1분에서 4시간 사이의 시간대에 시장 시계에서 각 상품을 분류하는 것입니다.
이렇게 하면 배열을 만들고 과거 데이터를 저장하고 현재 데이터를 업데이트합니다. 이것은 무거운 루프와 CopyBuffer를 피할 것입니다. 모든 것이 날아갈 것입니다.
당신이 아무것도 망치지 않았다면.
따옴표가 업로드되면 속도가 느려지지 않고 잘 작동하는 것 같습니다. 첫 번째 실행은 매우 길며 인용문을 다운로드하는 것 같습니다.
응답과 성능 버전에 감사드립니다. 실험해 보겠습니다.) 왜 프로그램이 끝나기 전에 핸들을 삭제하지 않는지 이해가 되지 않습니까? 또는 프로그램 종료 시 자동으로 삭제됩니다. 요원은 작업 관리자의 판단에 따라 석방되지는 않지만.
이렇게 하면 배열을 만들고 과거 데이터를 저장하고 현재 데이터를 업데이트합니다. 이것은 무거운 루프와 CopyBuffer를 피할 것입니다. 모든 것이 날아갈 것입니다.
고맙습니다! 나도 생각해볼게)
응답과 성능 버전에 감사드립니다. 실험해 보겠습니다.) 왜 프로그램이 끝나기 전에 핸들을 삭제하지 않는지 이해가 되지 않습니까? 또는 프로그램 종료 시 자동으로 삭제됩니다. 요원은 작업 관리자의 판단에 따라 석방되지는 않지만.
스크립트가 완료되면 일정 시간이 지나면 표시기 핸들이 삭제된다는 글을 어디선가 본 것 같습니다. 그러나 그것은 정확하지 않습니다.
여보세요
터미널에 선형 회귀 도구가 있습니다.
그래픽 개체로 동일한 채널을 그리는 스크립트가 있습니다.
그러나 중심선만 올바르게 그려지고 편차선은 중심에서 잘못된 거리에 그려집니다.
터미널과 같도록 편차를 계산하는 올바른 공식을 아는 사람이 있는지 알려주십시오.
또는 누군가가 해결책을 가지고 있습니까
감사합니다
안녕하세요!
AMarkets 브로커로 테스트할 때 암호화폐 에서 OrderSend 기능 이 작동하지 않는 이유를 알려주세요. 규정에 따르면 지하실에서 거래 고문에 대한 금지 사항을 찾지 못했습니다. 아니면 코드에 오류가 있습니까? GetLastError에서 오류 4756이 발생합니다.