MetaTrader 5 Python 사용자 그룹 - Metatrader에서 Python을 사용하는 방법 - 페이지 74

 

모두 좋은 하루!

내가 올바른 스레드에 게시하고 있는지 모르겠지만 당신이 나를 수정할 수 있기를 바랍니다. 그리고 한 가지 더 명확히 하자면 저는 프로그래밍에 전혀 소질이 없습니다!

그래서 잘 알려진 사이트에서 EUR/USD 쌍 의 견적을 가져와 EUR_USD_QUOTE.csv 파일의 A1 셀에 쓰는 PYTHON 언어로 작성된 작은 프로그램의 코드를 찾았습니다.

누군가에게 어렵지 않다면 EUR_USD_QUOTE.csv 파일의 동일한 A1 셀에 견적이 매시간 자동으로 업데이트되도록 코드를 수정하십시오.

안부 인사를 전합니다. 블라디미르.

import csv
import requests
from bs4 import BeautifulSoup
import os


def get_data(url_to_scrap= 'https://ru.investing.com/currencies/streaming-forex-rates-majors' ,
             file=None, save_file= "Name.csv" ):
     if url_to_scrap is not None:
        header = { 'accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' ,
                   'user-agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0' }
        r = requests. get (url_to_scrap, headers=header)
        data = BeautifulSoup(r.content, 'html.parser' )
     else :
        data = BeautifulSoup(open(file), 'html.parser' )
    table = data.find( 'tr' , id= 'pair_1' )
    table = table.find_all(class_= 'pid-1-bid' )
    row_data = []
     for row in table:
        row_data.append([row.get_text()])
    with open(save_file, 'w' ) as save:
         for row in row_data:
            writer = csv.writer(save, delimiter= ';' )
            writer.writerow(row)
    os.startfile(save_file)


get_data(save_file= 'EUR_USD_QUOTE.csv' )
Пара EUR/USD: технический анализ, новости Forex, фундаментальный анализ - Блоги трейдеров и аналитика финансовых рынков
Пара EUR/USD: технический анализ, новости Forex, фундаментальный анализ - Блоги трейдеров и аналитика финансовых рынков
  • www.mql5.com
Валютная пара EUR/USD — самая ликвидная, поскольку в ней участвуют первая и вторая по значимости мировые резервные валюты. Это подтверждается и статистически: доллар и евро самые крупные по объему
 
MrBrooklin :

모두 좋은 하루!

내가 올바른 스레드에 게시하고 있는지 모르겠지만 당신이 나를 수정할 수 있기를 바랍니다. 그리고 한 가지 더 명확히 하자면 저는 프로그래밍에 전혀 소질이 없습니다!

그래서 잘 알려진 사이트에서 EUR/USD 쌍 의 견적을 가져와 EUR_USD_QUOTE.csv 파일의 A1 셀에 쓰는 PYTHON 언어로 작성된 작은 프로그램의 코드를 찾았습니다.

누군가에게 어렵지 않다면 EUR_USD_QUOTE.csv 파일의 동일한 A1 셀에 견적이 매시간 자동으로 업데이트되도록 코드를 수정하십시오.

안부 인사를 전합니다. 블라디미르.

import csv
import requests
from bs4 import BeautifulSoup
import os


def get_data(url_to_scrap= 'https://ru.investing.com/currencies/streaming-forex-rates-majors' ,
             file=None, save_file= "Name.csv" ):
     if url_to_scrap is not None:
        header = { 'accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' ,
                   'user-agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0' }
        r = requests. get (url_to_scrap, headers=header)
        data = BeautifulSoup(r.content, 'html.parser' )
     else :
        data = BeautifulSoup(open(file), 'html.parser' )
    table = data.find( 'tr' , id= 'pair_1' )
    table = table.find_all(class_= 'pid-1-bid' )
    row_data = []
     for row in table:
        row_data.append([row.get_text()])
    with open(save_file, 'w' ) as save:
         for row in row_data:
            writer = csv.writer(save, delimiter= ';' )
            writer.writerow(row)
    os.startfile(save_file)


from datetime import datetime
import time


t = datetime.now().hour
t2 = t

while True:
    t = datetime.now().hour
     if (t2 != t):
        get_data(save_file= 'EUR_USD_QUOTE.csv' )
        t2 = t
    time.sleep( 10 )

 
Maxim Dmitrievsky :

고마워, 맥심!

수정된 코드를 PyCharm 개발 환경에서 실행해 보았지만 지금까지는 아무 일도 일어나지 않고 "다시 실행" 버튼(다시 시작)만 활성화되어 있습니다. 코드가 작동하는지 여부를 여전히 알 수 없습니까?

"문제" 탭에 표시되는 추가 정보가 있습니다.

  1. PEP 8: 파일 맨 위에 있지 않은 E402 모듈 수준 가져오기: 28
  2. PEP 8: 파일 상단에 없는 E402 모듈 수준 가져오기: 29 - 가져오기 타임 라인에 대한 내용입니다.
  3. 중복 괄호 제거(추가 괄호 제거) - 이 괄호가 코드에서 제거되면 이 메시지가 사라집니다.

Maxim, 코드가 작동하는지 여부를 이해하기 위해 파일의 인용문이 이제 최소한 1분 후에 업데이트되었는지 일시적으로 확인할 수 있습니까? 그렇지 않으면 한 시간 동안 기다리십시오...?

그리고 더. 앞서 공개한 소스코드를 런칭한 후 현재 견적이 있는 EUR_USD_QUOTE.csv 파일이 바로 열렸는데, 이 파일은 수정된 코드로 열리지 않습니다.

내가 뭔가 잘못하고 있거나 이해하지 못하는 것은 아닐까? 말해 주세요.

안부 인사를 전합니다. 블라디미르.
 
MrBrooklin :
고마워, 맥심!

수정된 코드를 PyCharm 개발 환경에서 실행해 보았지만 지금까지는 아무 일도 일어나지 않고 "다시 실행" 버튼(다시 시작)만 활성화되어 있습니다. 코드가 작동하는지 여부를 여전히 알 수 없습니까?

"문제" 탭에 표시되는 추가 정보가 있습니다.

  1. PEP 8: 파일 맨 위에 있지 않은 E402 모듈 수준 가져오기: 28
  2. PEP 8: 파일 상단에 없는 E402 모듈 수준 가져오기: 29 - 가져오기 타임 라인에 대한 내용입니다.
  3. 중복 괄호 제거(추가 괄호 제거) - 이 괄호가 코드에서 제거되면 이 메시지가 사라집니다.

Maxim, 코드가 작동하는지 여부를 이해하기 위해 파일의 인용문이 이제 최소한 1분 후에 업데이트되었는지 일시적으로 확인할 수 있습니까? 그렇지 않으면 한 시간 동안 기다리십시오...?

그리고 더. 앞서 공개한 소스코드를 런칭한 후 현재 견적이 있는 EUR_USD_QUOTE.csv 파일이 바로 열렸는데, 이 파일은 수정된 코드로 열리지 않습니다.

내가 뭔가 잘못하고 있거나 이해하지 못하는 것은 아닐까? 말해 주세요.

안부 인사를 전합니다. 블라디미르.

1st 2 오류 - 이것을 파일의 맨 위로 이동하십시오.

from datetime import datetime
import time

이것은 버그가 아니라 프로그래밍 스타일 경고일 뿐입니다.

빠른 확인을 위해 두 필드를 모두 교체하십시오.

hour

두번째

검사 타이머는 10초이므로 파일을 10초마다 작성해야 합니다.

Z.Y. 도주하지 마십시오. 그렇지 않으면 매우 빈번한 요청에 대해 귀하를 차단할 수 있습니다.

t = datetime .now(). hour
t2 = t

while True:
    t = datetime .now(). hour
     if (t2 != t):
        get_data(save_file='EUR_USD_QUOTE.csv')
        t2 = t
    time.sleep( 10 )

대괄호에 오류가 없습니다.

이 코드는 다음 시간까지 기다렸다가 저장합니다.

 

이 모듈이 설치되어 있지 않습니다.

import requests
from bs4 import BeautifulSoup

그래서 나는 확인하지 않았다

 
Maxim Dmitrievsky :

Maxim은 일반적으로 "과학적 찌르기" 방식을 사용하여 코드를 약간 변경(미리 사과드립니다)했고 실행 1분 만에 현재 견적으로 EUR_USD_QUOTE.csv 파일을 여는 것으로 나타났습니다.

from datetime import datetime
import time
t = datetime .now().minute  # здесь поставил минуту
t2 = t

while True:
    t = datetime .now().minute  # здесь поставил минуту
     if t2 != t:
        get_data(save_file='EUR_USD_QUOTE.csv')
        t2 = t
    # Code executed here
    time.sleep( 1 )  # и здесь 10 изменил на 1 .

하지만! EUR_USD_QUOTE.csv 파일을 1분 이내에 닫지 않으면 다음 메시지가 표시됩니다.

역추적(가장 최근 호출 마지막):
<module>의 "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py" 파일, 36행
get_data(save_file='EUR_USD_QUOTE.csv')
get_data의 "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py" 파일, 21행
open(save_file, 'w')을 저장으로 사용:
PermissionError: [Errno 13] 권한 거부됨: 'EUR_USD_QUOTE.csv'

종료 코드 1로 프로세스 완료

사람의 개입 없이 프로그램 코드를 실행한 후 프로세스를 계속하려면 어떻게 해야 합니까?

안부 인사를 전합니다. 블라디미르.

 
MrBrooklin :

Maxim은 일반적으로 "과학적 찌르기" 방식을 사용하여 코드를 약간 변경(미리 사과드립니다)했고 실행 1분 만에 현재 견적으로 EUR_USD_QUOTE.csv 파일을 여는 것으로 나타났습니다.


하지만! EUR_USD_QUOTE.csv 파일을 1분 이내에 닫지 않으면 다음 메시지가 표시됩니다.

역추적(가장 최근 호출 마지막):
<module>의 "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py" 파일, 36행
get_data(save_file='EUR_USD_QUOTE.csv')
get_data의 "C:/Users/Vladimir/PycharmProjects/My_Python_Project/8.py" 파일, 21행
open(save_file, 'w')을 저장으로 사용:
PermissionError: [Errno 13] 권한 거부됨: 'EUR_USD_QUOTE.csv'

종료 코드 1로 프로세스 완료

사람의 개입 없이 프로그램 코드를 실행한 후 프로세스를 계속하려면 어떻게 해야 합니까?

안부 인사를 전합니다. 블라디미르.

예, 어떤 이유로 프로세스가 os.startfile()로 바쁘기 때문에 이 줄을 제거하십시오.

os.startfile(save_file)

그리고

import os

삭제할 수 있습니다

작동하는지 확인했습니다

 
Maxim Dmitrievsky :

예, 어떤 이유로 프로세스가 os.startfile()로 바쁘기 때문에 이 줄을 제거하십시오.

그리고

삭제할 수 있습니다

작동하는지 확인했습니다

맥심, 나는 당신이 조언 한대로 모든 것을했습니다. 더 이상 문제 메시지가 없습니다. 프로그램이 시작되었고 이제 EUR_USD_QUOTE.csv 파일이 닫힌 경우 견적을 어떻게 볼 수 있습니까? 파일을 열고 열어 두면 PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE. csv'열린 파일 의 인용문이 더 이상 업데이트되지 않습니까?

다시 한 번 실례합니다만, 프로그래밍에 완전한 0이 있다는 사실을 절대 숨기지 않습니다.

안부 인사를 전합니다. 블라디미르.

 
MrBrooklin :

맥심, 나는 당신이 조언 한대로 모든 것을했습니다. 더 이상 문제 메시지가 없습니다. 프로그램이 시작되었고 이제 EUR_USD_QUOTE.csv 파일이 닫힌 경우 견적을 어떻게 볼 수 있습니까? 파일을 열고 열어 두면 PermissionError: [Errno 13] Permission denied: 'EUR_USD_QUOTE. csv'열린 파일 의 인용문이 더 이상 업데이트되지 않습니까?

다시 한 번 실례합니다만, 프로그래밍에 완전한 0이 있다는 사실을 절대 숨기지 않습니다.

안부 인사를 전합니다. 블라디미르.

엑셀을 여세요? 따라서 파일을 독점적으로 엽니다. 다른 응용 프로그램/사용자가 파일을 변경할 수 있도록 설정의 어딘가에 필요합니다.

도움이 될 수 있습니다 http://blog.depit.ru/odnovremennaya-rabota-v-excel/

그리고 일반적으로 다른 프로그램에서 열린 파일을 변경하는 것은 불가능합니다.

Одновременная работа нескольких пользователей с таблицами Excel
Одновременная работа нескольких пользователей с таблицами Excel
  • blog.depit.ru
Возможности системы Microsoft Excel позволяют работать по наполнению одного файла электронных таблиц одновременно нескольким пользователям. Для того, чтобы начать совместную работу с документом, достаточно в документе Microsoft Excel перейти в меню « Рецензирование » — « Доступ к книге » и выбрать « Разрешить изменять файл нескольким...
 
Maxim Dmitrievsky :

엑셀을 여세요? 따라서 파일을 독점적으로 엽니다. 다른 응용 프로그램/사용자가 파일을 변경할 수 있도록 설정의 어딘가에 필요합니다.

도움이 될 수 있습니다 http://blog.depit.ru/odnovremennaya-rabota-v-excel/

그리고 일반적으로 다른 프로그램에서 열린 파일을 변경하는 것은 불가능합니다.

예, Excel에서 엽니다. 열린 파일 EUR_USD_QUOTE.csv의 견적을 실시간으로 업데이트하는 것은 아직 불가능합니다.

그리고 이것은 표를 보고 견적이 어떻게 바뀌는지 확인하는 아이디어였습니다.

안부 인사를 전합니다. 블라디미르.