I사용자 정의 기능 - 페이지 10

 

안녕하세요, 이 전문가의 설명을 도와주시겠습니까?

FreedomBar 표시기 기준...

이전 스퀘어가 빨간색으로 마감되면 -> 매도(시장 가격) -> 다음 이전 스퀘어에서 마감 거래가 파란색으로 변경되고 반대로 구매(시장 가격)

구매 주문에 대한 Idem

TF, tp, sl 및 후행 중지 옵션이 좋습니다.

미리 감사드립니다

파일:
 

어떤 도움을 주시기 바랍니다. 나는 icustom을 사용하여 EA에서 지표를 읽고 있습니다. 백테스트 동안 추세는 매우 행복하게 실행됩니다. 그런 다음 어떤 이유에서인지 icustom 매개변수가 반전되어 거래가 활성화된 후 지표가 아래로 표시되더라도 내 추세는 아래가 아닌 위로 올라가게 됩니다. 스스로 수정한 다음 잠시 후 다시 발생

 
increase:
어떤 도움을 주시기 바랍니다. 나는 icustom을 사용하여 EA에서 지표를 읽고 있습니다. 백테스트 동안 추세는 매우 행복하게 실행됩니다. 그런 다음 어떤 이유에서인지 icustom 매개변수가 반전되어 거래가 활성화된 후 지표가 아래로 표시되더라도 내 추세는 아래가 아닌 위로 올라가게 됩니다. 스스로 수정한 다음 잠시 후 다시 발생

mmm 그래서 표시기가 SuperTrend volty와 같은 문제인 것처럼 보이지만 FX Sniper Ergodic 및 Fisher 와 같은 다른 비 재도색 표시기에 문제가 있었습니다.

문제는 지시자가 방향을 가리키고 있다고 말하는 경우가 많지만 이동의 시작 지점이 끝보다 낮아져 지표가 아래로 표시되지만 데이터가 읽히는 경우가 많다는 것입니다.

이에 대한 의견이 있습니까? 이 작업을 수행하지 않는 다시 칠하지 않는 표시기 또는 다른 솔루션이 있는 사람이 있습니까?

첨부 사진을 참조하십시오

파일:
pic.jpg  38 kb
 

아이커스텀 기능

안녕하세요 여러분 ... 이것은 내 첫 번째 게시물입니다

만들려고 하는 ea im에 도움이 필요합니다. 이 ea는 표시기의 색상에 따라 위치를 닫는 데 사용되지만 수동으로 위치를 엽니다. 디 컴파일 버전 표시기가 없기 때문에 icustom이 갈 길이라고 생각합니다.

그러나 색상을 기반으로 함수를 어떻게 호출합니까?

예를 들어 Heikin Ashi_SW를 사용하고 바가 닫힌 후 색상이 파란색일 때 판매 위치를 닫고 그 반대의 경우도 마찬가지입니다.

미리 감사합니다

 

I맞춤형 문제

8개의 버퍼를 숫자 1.0으로 채우는 #TestIndicator라는 extern이 없는 간단한 Custom Indicator 가 있지만 EA에서 버퍼를 다시 가져올 때 버퍼 결과는 항상 0입니다. 도와주실 수 있나요?

#테스트지표

#property indicator_chart_window

#property indicator_buffers 8

double buf4_up[];

double buf4_down[];

double buf3_up[];

double buf3_down[];

double buf2_up[];

double buf2_down[];

double buf1_up[];

double buf1_down[];

int UniqueNum = 0070;

string shortname = "";

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

shortname = "#TFX";

IndicatorBuffers(8);

IndicatorShortName(shortname);

//---- indicators

SetIndexBuffer(0,buf4_up);

SetIndexBuffer(1,buf4_down);

SetIndexBuffer(2,buf3_up);

SetIndexBuffer(3,buf3_down);

SetIndexBuffer(4,buf2_up);

SetIndexBuffer(5,buf2_down);

SetIndexBuffer(6,buf1_up);

SetIndexBuffer(7,buf1_down);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int limit;

int counted_bars = IndicatorCounted();

//---- the last calculated bar will be recalculated

if(counted_bars > 0)

counted_bars--;

limit = Bars - counted_bars - 1;

//---- the main cycle

for(int i = limit; i >= 0; i--)

{

//----

buf4_up=1.0;

buf4_down=1.0;

buf3_up=1.0;

buf3_down=1.0;

buf2_up=1.0;

buf2_down=1.0;

buf1_up=1.0;

buf1_down=1.0;

}

//----

//----

//----

return(0);

}

//+------------------

[/CODE]

EA Code

[CODE]

double test4_up[];

double test4_down[];

double test3_up[];

double test3_down[];

double test2_up[];

double test2_down[];

double test1_up[];

double test1_down[];

int UniqueNum = 009;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

Print("Inside init");

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

Print("Inside deinit");

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

Print("Inside start");

int counted_bars=IndicatorCounted();

int y5m=0, y1h=0, y30m=0, y15m=0, yy=0;

int i=0;

int limit=Bars-counted_bars;

for(i=0;i<limit;i++)

{

test4_up = iCustom(NULL, 0, "#TestIndicator",0,i);

test4_down = iCustom(NULL, 0, "#TestIndicator",1,i);

}

for(i=0;i<30;i++)

{

Print("Test 4 UP ", test4_up," Bar ",i );

Print("Test 4 DOWN ", test4_down," Bar ",i );

//Print("This is a test");

}

//----

return(0);

}

//+---------

테스터의 결과

 
Xaun:
8개의 버퍼를 숫자 1.0으로 채우는 #TestIndicator라는 extern이 없는 간단한 Custom Indicator가 있지만 EA에서 버퍼를 다시 가져올 때 버퍼 결과는 항상 0입니다. 도와주실 수 있나요?

EA 코드

double test4_up[];

double test4_down[];

double test3_up[];

double test3_down[];

double test2_up[];

double test2_down[];

double test1_up[];

double test1_down[];

int UniqueNum = 009;

..

..

...

......

..

int i=0;

int limit=Bars-counted_bars;

ArrayResize(test4_up, limit);

ArrayResize(test4_down, limit);

for(i=0;i<limit;i++)

{

test4_up = iCustom(NULL, 0, "#TestIndicator",0,i);

test4_down = iCustom(NULL, 0, "#TestIndicator",1,i);

}

for(i=0;i<30;i++)

{

Print("Test 4 UP ", test4_up," Bar ",i );

Print("Test 4 DOWN ", test4_down," Bar ",i );

//Print("This is a test");

}

//----

return(0);

}

//+---------

]

Maybay는 EA에서 어레이의 크기를 정의해야 합니다.

 

감사해요

okfar:
Maybay는 EA에서 어레이의 크기를 정의해야 합니다.

감사합니다. 그게 바로 문제였다

 

데이터에 액세스하는 방법에 따라 지표를 다시 계산할 필요가 없는 것처럼 각 눈금마다 배열을 다시 채울 필요가 없습니다. 보다

bool ArraySetAsSeries ( double &array[], bool set) 배열의 인덱싱 방향을 설정합니다 . set 매개변수에 TRUE 값이 있으면 배열은 역순으로 색인화됩니다. 즉, 마지막 요소의 색인이 0입니다. FALSE 값은 표준 인덱싱 순서를 설정합니다. 함수는 이전 상태를 반환합니다.

 

...

표시기에서만 사용할 수 있는 기능을 사용하려고 합니다.

IndicatorCounted() 는 EA에서 호출될 때 전혀 의미가 없습니다. EA 코드 내에서 호출될 때 항상 -1을 반환합니다. 대신 상수(두 번째 루프에서와 같이) 또는 막대(전체 기록을 원하는 경우)를 사용해 보십시오.

또한 EA 내에서 사용되는 배열은 크기를 조정하고 초기화해야 하며 일반적으로 메타 트레이더가 표시기 및 표시기 내의 버퍼와 관련하여 수행하는 전체 작업을 수행해야 합니다. EA에는 표시기에서 사용되는 SetIndexBuffer() 와 동일한 기능이 없습니다. Ea에 초기화되지 않은 배열이 있고 메타 트레이더만 EA가 플랫폼 충돌을 방지했습니다(이 경우 항상 0을 반환합니다. 읽으려는 요소 값이 존재하지 않고 실제로 해당 배열이 존재하지 않기 때문입니다. 그들은 단지 선언되고 할당되지 않고 초기화됩니다...))

문안 인사

믈라덴

Xaun:
8개의 버퍼를 숫자 1.0으로 채우는 #TestIndicator라는 extern이 없는 간단한 Custom Indicator가 있지만 EA에서 버퍼를 다시 가져올 때 버퍼 결과는 항상 0입니다. 도와주실 수 있나요?

#테스트지표

#property indicator_chart_window

#property indicator_buffers 8

double buf4_up[];

double buf4_down[];

double buf3_up[];

double buf3_down[];

double buf2_up[];

double buf2_down[];

double buf1_up[];

double buf1_down[];

int UniqueNum = 0070;

string shortname = "";

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

shortname = "#TFX";

IndicatorBuffers(8);

IndicatorShortName(shortname);

//---- indicators

SetIndexBuffer(0,buf4_up);

SetIndexBuffer(1,buf4_down);

SetIndexBuffer(2,buf3_up);

SetIndexBuffer(3,buf3_down);

SetIndexBuffer(4,buf2_up);

SetIndexBuffer(5,buf2_down);

SetIndexBuffer(6,buf1_up);

SetIndexBuffer(7,buf1_down);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int limit;

int counted_bars = IndicatorCounted();

//---- the last calculated bar will be recalculated

if(counted_bars > 0)

counted_bars--;

limit = Bars - counted_bars - 1;

//---- the main cycle

for(int i = limit; i >= 0; i--)

{

//----

buf4_up=1.0;

buf4_down=1.0;

buf3_up=1.0;

buf3_down=1.0;

buf2_up=1.0;

buf2_down=1.0;

buf1_up=1.0;

buf1_down=1.0;

}

//----

//----

//----

return(0);

}

//+------------------

[/code]EA Code

[code]

double test4_up[];

double test4_down[];

double test3_up[];

double test3_down[];

double test2_up[];

double test2_down[];

double test1_up[];

double test1_down[];

int UniqueNum = 009;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

Print("Inside init");

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

Print("Inside deinit");

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

Print("Inside start");

int counted_bars=IndicatorCounted();

int y5m=0, y1h=0, y30m=0, y15m=0, yy=0;

int i=0;

int limit=Bars-counted_bars;

for(i=0;i<limit;i++)

{

test4_up = iCustom(NULL, 0, "#TestIndicator",0,i);

test4_down = iCustom(NULL, 0, "#TestIndicator",1,i);

}

for(i=0;i<30;i++)

{

Print("Test 4 UP ", test4_up," Bar ",i );

Print("Test 4 DOWN ", test4_down," Bar ",i );

//Print("This is a test");

}

//----

return(0);

}

//+---------

테스터의 결과...

 

코딩 질문

나는 내가 매우 좋아하고 몇 주 동안 그것을 데모했고 꽤 성공적이라는 지표를 가지고 있습니다. 지표를 기반으로 매수/매도 주문을 자동화할 수 있는 방법이 있습니까? 간단히 요약하면 내가 좋아하는 지표가 정렬될 때 차트에서 위 또는 아래를 가리키는 작은 화살표입니다. 화살표가 떴을 때 주문을 하는 방법이 없을까요?