Harigami
ログイン
Harigamiは、ログイン不要のコード共有サービスです。コードの投稿後に発行されるURLでコードを共有できます。
PythonやRubyなど一部の言語は、投稿後にオンラインで実行することもできます。
誰でも無料で使えて、広告もありません。コードレビューやスニペットの代わりに使ってみてください。


詳細設定
+
LC23 タイトルなし
Python
//@version=4
study("自動平行チャネル", "短期中期", true, format.inherit)
period     = input(     300, "中期チャネル期間"       , input.integer, minval=3)
period2     = input(     100, "短期チャネル期間"       , input.integer, minval=3)
deviations = input(    2.0, "中期チャネル幅調整" , input.float  , minval=0.1, step=0.1)
deviations2 = input(    2.0, "短期チャネル幅調整" , input.float  , minval=0.1, step=0.1)
extendType = input("ON", "中期チャネル延長", input.string , options=["ON","OFF"])=="ON" ? extend.right : extend.none
extendType2 = input("ON", "短期チャネル延長", input.string , options=["ON","OFF"])=="ON" ? extend.right : extend.none
periodMinusOne = period-1
periodMinusOne2 = period2-1
///中期
Ex = 0.0, Ey = 0.0, Ex2 = 0.0, Exy = 0.0, for i=0 to periodMinusOne
    closeI = nz(close[i]), Ex := Ex + i, Ey := Ey + closeI, Ex2 := Ex2 + (i * i), Exy := Exy + (closeI * i)
ExEx = Ex * Ex, slope = Ex2==ExEx ? 0.0 : (period * Exy - Ex * Ey) / (period * Ex2 - ExEx)
linearRegression = (Ey - slope * Ex) / period
intercept = linearRegression + bar_index * slope
deviation = 0.0, for i=0 to periodMinusOne
    deviation := deviation + pow(nz(close[i]) - (intercept - slope * (bar_index[i])), 2.0)
deviation := deviations * sqrt(deviation / periodMinusOne)
startingPointY = linearRegression + slope * periodMinusOne
var line upperChannelLine = na  , var line medianChannelLine = na  , var line lowerChannelLine = na
line.delete(upperChannelLine[1]), line.delete(medianChannelLine[1]), line.delete(lowerChannelLine[1])
///短期
Ex3 = 0.0, Ey3 = 0.0, Ex4 = 0.0, Exy3 = 0.0, for i3=0 to periodMinusOne2
    closeI3 = nz(close[i3]), Ex3 := Ex3 + i3, Ey3 := Ey3 + closeI3, Ex4 := Ex4 + (i3 * i3), Exy3 := Exy3 + (closeI3 * i3)
ExEx3 = Ex3 * Ex3, slope3 = Ex4==ExEx3 ? 0.0 : (period2 * Exy3 - Ex3 * Ey3) / (period2 * Ex4 - ExEx3)
linearRegression3 = (Ey3 - slope3 * Ex3) / period2
intercept3 = linearRegression3 + bar_index * slope3
deviation3 = 0.0, for i3=0 to periodMinusOne2
    deviation3 := deviation3 + pow(nz(close[i3]) - (intercept3 - slope3 * (bar_index[i3])), 2.0)
deviation3 := deviations2 * sqrt(deviation3 / periodMinusOne2)
startingPointY3 = linearRegression3 + slope3 * periodMinusOne2
var line upperChannelLine3 = na  , var line medianChannelLine3 = na  , var line lowerChannelLine3 = na
line.delete(upperChannelLine3[1]), line.delete(medianChannelLine3[1]), line.delete(lowerChannelLine3[1])
///カラー
upperChannelLine  := line.new(bar_index - period + 1, startingPointY + deviation, bar_index, linearRegression + deviation, xloc.bar_index, extendType, color.lime, line.style_solid , 2)
medianChannelLine := line.new(bar_index - period + 1, startingPointY            , bar_index, linearRegression            , xloc.bar_index, extendType, color.lime, line.style_solid , 1)
lowerChannelLine  := line.new(bar_index - period + 1, startingPointY - deviation, bar_index, linearRegression - deviation, xloc.bar_index, extendType, color.lime, line.style_solid , 2)

upperChannelLine3  := line.new(bar_index - period2 + 1, startingPointY3 + deviation3, bar_index, linearRegression3 + deviation3, xloc.bar_index, extendType2, color.red, line.style_solid , 2)
lowerChannelLine3  := line.new(bar_index - period2 + 1, startingPointY3 - deviation3, bar_index, linearRegression3 - deviation3, xloc.bar_index, extendType2, color.red, line.style_solid , 2)
  • 0
  • 0
anonymous タイトルなし
Python
Mamamamammamamammam
  • 0
  • 0
anonymous タイトルなし
Python
7676786867867868
  • 0
  • 0
anonymous タイトルなし
Python
56757598
  • 0
  • 0
anonymous タイトルなし
Python
Fffffffff
  • 0
  • 0
anonymous タイトルなし
Python
import cv2
print(cv2)
import numpy as np
'''
# カメラのキャプチャを開始 --- (*1)
cam = cv2.VideoCapture(0)
while True:
    # 画像を取得 --- (*2)
    _, img = cam.read()
    # ウィンドウに画像を表示 --- (*3)
    cv2.imshow('PUSH ENTER KEY', img)
    # Enterキーが押されたら終了する
    if cv2.waitKey(1) == 13: break
# 後始末
cam.release()
cv2.destroyAllWindows()
'''

def find_rect_of_target_color(image):
  hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV_FULL)
  h = hsv[:, :, 0]
  s = hsv[:, :, 1]
  mask = np.zeros(h.shape, dtype=np.uint8)
  mask[((h < 20) | (h > 200)) & (s > 128)] = 255
  contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
  rects = []
  for contour in contours:
    approx = cv2.convexHull(contour)
    rect = cv2.boundingRect(approx)
    rects.append(np.array(rect))
  return rects


if __name__ == "__main__":
  capture = cv2.VideoCapture()
  while cv2.waitKey(30) < 0:
    _, frame = capture.read()
    rects = find_rect_of_target_color(frame)
    for rect in rects:
      cv2.rectangle(frame, tuple(rect[0:2]), tuple(rect[0:2] + rect[2:4]), (0, 0, 255), thickness=2)
    cv2.imshow('red', frame)
  capture.release()
  cv2.destroyAllWindows()
  • 0
  • 1
anonymous タイトルなし
C
#include<stdio.h>
#define num 10

void mergesort(int ary[], int left, int right){

    int i, j, k, mid;
    int temp[num];

    if(left < right){

        mid = (left + right)/2;

        mergesort(ary, left, mid);
        mergesort(ary, mid + 1, right);

        for(i = left; i <= mid; i++){
            temp[i] = ary[i];
        }

        for(j = mid + 1; j <= right; j++){
            temp[right - (j - (mid + 1))] = ary[j];
        }

        i = left, j = right;

        for(k = left; k <= right; k++){
            if(temp[i] < temp[j]){
                ary[k] = temp[i];
                i++;
            }
            else{
                ary[k] = temp[j];
                j--;
            }
        }
    }
}

void merge(int ary1[], int ary2[], int ary3[]){
    int i, j, k;
    i = j = k = 0;

    for(; k < num * 2; k++){
        if(ary1[i] < ary2[j]){
            ary3[k] = ary1[i];
            i++;
        }
        else{
            ary3[k] = ary2[j];
            j++;
        }
    }
}

int main(void){
    int ary1[num], ary2[num], ary3[num * 2];

    for(int i = 0; i < num; i++){
        scanf("%d",&ary1[i]);
    }

    for(int i = 0; i < num; i++){
        scanf("%d",&ary2[i]);
    }

    mergesort(ary1,0,num - 1);

    mergesort(ary2,0,num - 1);

    for(int i = 0; i < num; i++){
        printf("%d,", ary1[i]);
    }
    printf("\n");

    for(int i = 0; i < num; i++){
        printf("%d,", ary2[i]);
    }
    printf("\n");

    merge(ary1, ary2, ary3);

    for(int i = 0; i < num * 2; i++){
        printf("%d, ",ary3[i]);
    }

    printf("\n");
}
  • 0
  • 1
anonymous タイトルなし
C
#include<stdio.h>
#define num 10

void mergesort(int ary[], int left, int right){

    int i, j, k, mid;
    int temp[num];

    if(left < right){

        mid = (left + right)/2;

        mergesort(ary, left, mid);
        mergesort(ary, mid + 1, right);

        for(i = left; i <= mid; i++){
            temp[i] = ary[i];
        }

        for(j = mid + 1; j <= right; j++){
            temp[right - (j - (mid + 1))] = ary[j];
        }

        i = left, j = right;

        for(k = left; k <= right; k++){
            if(temp[i] < temp[j]){
                ary[k] = temp[i];
                i++;
            }
            else{
                ary[k] = temp[j];
                j--;
            }
        }
    }
}

void merge(int ary1[], int ary2[], int ary3[]){
    int i, j, k;
    i = j = k = 0;

    for(; k < num * 2; k++){
        if(ary1[i] < ary2[j]){
            ary3[k] = ary1[i];
            i++;
        }
        else{
            ary3[k] = ary2[j];
            j++;
        }
    }
}

int main(void){
    int ary1[num], ary2[num], ary3[num * 2];

    for(int i = 0; i < num; i++){
        scanf("%d",&ary1[i]);
    }

    for(int i = 0; i < num; i++){
        scanf("%d",&ary2[i]);
    }

    mergesort(ary1,0,num - 1);

    mergesort(ary2,0,num - 1);

    for(int i = 0; i < num; i++){
        printf("%d,", ary1[i]);
    }
    printf("\n");

    for(int i = 0; i < num; i++){
        printf("%d,", ary2[i]);
    }
    printf("\n");

    merge(ary1, ary2, ary3);

    for(int i = 0; i < num * 2; i++){
        printf("%d, ",ary3[i]);
    }

    printf("\n");
}
  • 0
  • 0
ガンマ@駆け出しエンジニア MTF MovingAvg2Line Cross
Python
//@version=4
strategy("MTF MovingAvg2Line Cross", overlay=true)
ES = input(title="MA1の選択", defval="EMA", options=["EMA", "SMA"])
ES2 = input(title="MA2の選択", defval="EMA", options=["EMA", "SMA"])
len = input(title='時間軸', type=input.resolution, defval="60")
res = input(defval=true, title="チェック=MTF表示")
res2 = res ? len : timeframe.period
fastLength = input(9)
slowLength = input(18)
price = close
fsma=sma(price, fastLength)
fema=ema(price, fastLength)
fast = ES == "EMA" ? fsma : fema
ssma=sma(price, slowLength)
sema=ema(price, slowLength)
slow = ES2 == "EMA" ? ssma : sema
mafast = security(syminfo.tickerid, res2,fast)
maslow = security(syminfo.tickerid, res2,slow)
if (crossover(mafast, maslow))
    strategy.entry("MA2CrossLE", strategy.long, comment="MA2CrossLE")
if (crossunder(mafast, maslow))
    strategy.entry("MA2CrossSE", strategy.short, comment="MA2CrossSE")
plot(mafast, color=color.lime)
plot(maslow, color=color.red)
  • 0
  • 1
ガンマ@駆け出しエンジニア MTF Keltner Channel Strategy
Python
//@version=4
strategy("MTF Keltner Channel Strategy", overlay=true)
source = close
len = input(title=' 期間', type=input.resolution, defval="60")
res = input(defval=true, title="チェック=MTF表示")
res2 = res ? len : timeframe.period
useTrueRange = input(true)
length = input(20, minval=1)
mult = input(1.0)
ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult
basis = avg(upper, lower)
ures = security(syminfo.tickerid, res2, upper)
lres = security(syminfo.tickerid, res2, lower)
bres = security(syminfo.tickerid, res2, basis)
crossUpper = crossover(source, ures)
crossLower = crossunder(source, lres)
bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])
sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) 
crossBcond = false
crossBcond := crossUpper ? true 
 : na(crossBcond[1]) ? false : crossBcond[1]
crossScond = false
crossScond := crossLower ? true 
 : na(crossScond[1]) ? false : crossScond[1]
cancelBcond = crossBcond and (source < ma or high >= bprice )
cancelScond = crossScond and (source > ma or low <= sprice )
if (cancelBcond)
    strategy.cancel("KltChLE")
if (crossUpper)
    strategy.entry("KltChLE", strategy.long, stop=bprice, comment="KltChLE")
if (cancelScond)
    strategy.cancel("KltChSE")
if (crossLower)
    strategy.entry("KltChSE", strategy.short, stop=sprice, comment="KltChSE")
plot(ures, color=color.aqua)
plot(lres, color=color.aqua)
plot(bres, color=color.orange, style=plot.style_cross)
  • 0
  • 0