트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 1557

 
Mihail Marchukajtes : ZZ를 대상으로 사용하지 말아야 하는 이유가 여기에 있습니다.

저는 약 15년 동안 ZZ와 함께 일해 왔습니다. 나는 이 도구의 모든 단점을 알고 있습니다. 그리고 훨씬 더 많이 알려져 있기 때문에 위에서 내 아이디어에 대해 이야기했습니다.

---

시스템 자체에서 구매/판매 포인트를 식별해야 합니다. 그녀는 시장의 플레이어와 경쟁하는 것이 아니라 시장 자체와 경쟁합니다(일부 동어반복 죄송합니다).

 
유지니 뉴모인 :

저는 약 15년 동안 ZZ와 함께 일해 왔습니다. 이 도구의 모든 단점을 알고 있습니다. 그리고 훨씬 더 많이 알려져 있기 때문에 위에서 내 아이디어에 대해 이야기했습니다.

---

시스템 자체에서 구매/판매 포인트를 식별해야 합니다. 그녀는 시장의 플레이어와 경쟁하는 것이 아니라 시장 자체와 경쟁합니다(일부 동어반복 죄송합니다).

그리고 여기에서 조금 더 자세히 알아볼 수 있습니다. 어떻게 구현했습니까? 매수자와 매도자 사이에 다툼이 있을 때, 그 결과가 견적이 되는 것은 이해하지만, 시장 자체가 게임의 적이라 여기에서는 명확하지 않다. 우리가 알파에 대해 말하면 그녀는 특정 규칙에 따라 자신과 놀면서 노는 것을 배웠습니다. 시장에 대한 규칙을 지시할 수 없으므로 시장과 경쟁하지 않고 시장처럼 하려고 합니다. 즉, 시장을 배우지만 그와 경쟁하지 않습니다. 시장이 이상적인 플레이어라고 상상하고 우리가 그보다 더 나아지기 위해 노력한다면. 네. 동의하지만 alpha를 사용한 예는 여기에 적합하지 않습니다. 알파는 독학했기 때문입니다. 나는 혼자 공부했다. 그러나 시장과 시장이 선험적으로 승자하는 ns 사이의 경쟁 순간을 정확히 어떻게 수행했는지 간단히 설명하십시오. 33에는 선험적으로 유한한 값이 없으므로 쓸모가 없습니다.
 

"사람을 위한 AI: 기술에 대한 간단한 단어" 라는 큰 제목의 Habré에 대한 기사 https://habr.com/ru/company/jetinfosystems/blog/471626/

나는 기사를 뒤집어 보았습니다. 모든 것이 기계 학습으로 귀결되었습니다. .... 나는 오래된 농담을 기억했습니다.

학생이 동물학을 수강하고 있습니다. 그는 벼룩에 대해서만 알고 있습니다. 시험에서 당신은 개에 대한 질문을 받습니다.

Sudent 시작:

- 개는 털로 덮인 포유류입니다. 벼룩은 양모에서 발견됩니다 ... 모든 것이 벼룩에 관한 것입니다 ....

선생님:

- 좋아, 젊은이, 고양이에 대해 말해봐.

학생:

- 고양이는 털로 덮인 포유류입니다. 벼룩은 양모에서 발견됩니다 ... 모든 것이 벼룩에 관한 것입니다 ....

선생님:

- 물고기에 대해 이야기합시다.

학생:

- 물고기는 포유류가 아닙니다. 양모로 덮여 있지 않습니다. 그들은 비늘로 덮여 있지만 양모로 덮여 있다면 벼룩이 발견 될 것입니다 ....

 
 
 

귀국에 대한 교육의 마지막


 
유지니 뉴모인 :

ZZ 및 일반적으로 추가 지표를 사용할 필요가 없습니다. 여러 TF가 있는 OHLC(TF는 4-6배 달라야 합니다. 예를 들어, 1-5-30-H3... 최대 월별 TF. 스스로 선택하십시오.) 및 조기 경고를 위해 더 많은 틱이 있을 수 있습니다.

최고가와 최저 가격이 별도로 컨볼루션 구조입니다. OHLC에 의해 -반복 구조. 등등 사용된 모든 tf. 이 모든 신호는 예를 들어 완전히 연결된 네트워크로 전송됩니다.

또한 순환 네트워크를 통해 전달된 틱은 완전히 연결된 네트워크의 입력 중 하나에 연결되어야 합니다.

예금 증가율을 최적화합니다. 결과적으로 집합 네트워크 자체에서 부지가 얼마인지 결정하고 시작점과 마감점을 선택해야 합니다. 다소 이렇습니다.

글쎄, 당신이 말하는 것은 당신이 제안한 네트워크의 구조를 그리는 것입니다. 그리고 당신은 많은 질문을 할 것입니다.

그리고 그것은 단지 뇌진탕입니다. 생각은 옳고 방향은 틀리다.

 
막심 드미트리예프스키 :

귀국에 대한 교육의 마지막


자체 제작한 테스터를 첨부할 수 있나요? 아주 흔한 실수 하나는 피하셨는지 궁금합니다. 또는 직접.

행운을 빕니다

 
블라디미르 페레르벤코 :

자체 제작한 테스터를 첨부할 수 있나요? 아주 흔한 실수 하나는 피하셨는지 궁금합니다. 또는 직접.

행운을 빕니다

Jupiter 노트북이 적합합니까? 비밀이 아니라 다 버렸어요, tk. 모든 코드는 비디오에 있습니다

 
막심 드미트리예프스키 :

Jupiter 노트북이 적합합니까? 비밀이 아니라 다 버렸어요, tk. 모든 코드는 비디오에 있습니다

틀림없이. 고맙습니다. 살펴보고 포스팅하겠습니다

 
막심 드미트리예프스키 :

Jupiter 노트북이 적합합니까? 비밀이 아니라 다 버렸어요, tk. 모든 코드는 비디오에 있습니다

다른 사람의 코드를 구문 분석하는 것은 여전히 직업입니다. custom_tester() 함수와 강조 표시된 부분만 봅니다.

def custom_tester(symbol, timeframe, frompos, pricesnumber, lag, num, markup = 0.0 ):   
    symbols_list = [symbol]
    pr_test = pd.DataFrame()
     for i in symbols_list:
        rates = MT5CopyRatesFromPos(i, timeframe, frompos, pricesnumber)
         pr_test[i] = [y.close for y in rates]

    #creating price returns with lag
    returns = np.array(np. log ( 1 + pr_test.pct_change(lag)))
    returns = returns[lag:]
    comp_returns = np.array(returns)
    #                   
     for i in range(num- 1 ):
        comp_returns = np.c_[comp_returns, returns]
    #putting returns into dataframe    
    comp_returns = pd.DataFrame(comp_returns)
    #shifting columns to use it as delayed features
     for i in range(num):
        comp_returns[i] = comp_returns.shift(i)
    #deleting first 'num' rows with NaN's
    comp_returns_shifted = pd.DataFrame(comp_returns[num:]).reset_index(drop=True)
    
    testpr = np.array(pr_test[lag+num:])
    X = pd.DataFrame(comp_returns_shifted)
     p = model.predict_proba(X) # непрерывное предсказание классификатора (типа вероятность)
    
     result = np.array([ 0 ])
    
    lastdeal = int ( 2 )
    lastpr = float ( 0.0 )

     for i in range (X[ 0 ].size):
# При первом входе
         if lastdeal == 2 :
# переводим непрерывное предсказание в номинальные значенияю Порог 0.5
             if p[i][ 0 ] > 0.5 :
                lastdeal = 1
             else :
                lastdeal = 0
            lastpr = testpr[i] # сохраняем значение Close 
             continue
# при следующей итерации
         if lastdeal == 1 and p[i][ 0 ] > 0.5 :
            lastdeal = 0 # это я не понял зачем
# При вычислении результата ошибка
            result = np.append(result, result[- 1 ] - markup + lastpr - testpr[i])
            lastpr = testpr[i]
             continue
# при последующей итерации
         if lastdeal == 0 and p[i][ 0 ] < 0.5 :
            lastdeal = 1 # здесь не должно быть -1?
# и здесь ошибка
            result = np.append(result, result[- 1 ] - markup + testpr[i] - lastpr)
            lastpr = testpr[i]
             continue
            
    plt.figure(figsize=( 20 , 5 ))
    plt.plot(result)
    
    from sklearn.linear_model import LinearRegression
    y = result.reshape(- 1 , 1 )
    X = np.arange(result.size).reshape(- 1 , 1 )
    lr = LinearRegression()
    lr.fit(X,y)
#     print(lr.score(X,y))
     return lr.score(X,y)

결과 계산의 오류는 무엇입니까? result += testpr[i] - lastpr을 이전 값에 추가하여 각 반복에서 결과를 계산합니다. 이것은 현재 막대의 닫기와 이전 막대의 차이입니다. 이론상으로 Close - Open을 사용하는 것이 더 낫지만 상관없습니다. 또 다른 것이 중요합니다. 현재 막대가 닫힐 때 신호를 수신하면 신호 프리미엄을 동일한 막대의 diff(닫기)로 간주합니다. 이것은 사실이 아닙니다. 현재 막대의 신호 보너스는 다음 막대의 diff(닫기)입니다 . 결과를 올바르게 계산하려면 p = model.predict_proba(X) 를 오른쪽으로 1 bar 이동해야 합니다. 나는 R에서 더 많은 계산을 할 것입니다. 그것은 나에게 더 쉽습니다.

ifelse(p >= 0.5 , 1 , - 1 )%>% lag()%>% na.omit() -> sig
cumsum(sig * {diff(testpr) %>% tail(lenght(sig))})-> result

첫 번째 줄에서 - 우리는 예측을 명목(1,-1)으로 변환하고, 오른쪽 으로 한 막대만큼 이동하고, NA를 제거하고, 신호 벡터를 얻습니다. 두 번째 줄에서 신호 벡터와 diff(Close) 벡터의 곱을 누적 합산하여 미리 길이를 신호 벡터와 정렬합니다. 우리는 올바른 결과를 얻습니다.

행운을 빕니다

Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
  • www.mql5.com
Дополнение до единицы значения переменной. Значение выражения содержит 1 во всех разрядах, в которых значение переменной содержит 0, и 0 во всех разрядах, в которых значения переменной содержит 1. Сдвиг вправо Двоичное представление x сдвигается вправо на y разрядов. Если сдвигаемое значение имеет беззнаковый тип, то осуществляется логический...
사유: