[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 185

 
001 писал(а) >>
가능하면 코드 형태로, 그렇지 않으면 내 머리를 부러 뜨 렸습니다 :)
 int Order_Count [ 6 ] ;
//===============================================================================
// Функция возвращаюшая количество ордеров определенного типа исхода из заданных ограничений
//===============================================================================
int Order_Count_Calculate ( string _Symbol , int _Magic , int _OP = - 1 ) {
   ArrayInitialize ( Order_Count , 0 ) ;
   for ( int i = OrdersTotal ( ) - 1 ;   i > = 0 ;   i - - ) {
       if ( ! OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) )    continue ;
       if ( OrderSymbol ( ) ! = _Symbol )                      continue ;
       if ( OrderMagicNumber ( ) ! = _Magic )                    continue ;
      Order_Count [ OrderType ( ) ] + + ;
   }
   if ( _OP > = 0 ) return ( Order_Count [ _OP ] ) ;
   return ( 0 ) ;
}
이 옵션이 적합합니다.
 

무엇이 문제가 될 수 있습니까? 테스트 도중 인디케이터가 몇 개만 보여도 어드바이저는 인디케이터의 문제점이 무엇일지 막막했다.



파일:
trix_pv_4.mq4  10 kb
 

어떤 변수가 OsMA 값을 저장합니까?



//+----------------------------------------------- --------------------+
//| 오스마.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+----------------------------------------------- --------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#속성 링크 "http://www.metaquotes.net/"
//---- 표시기 설정
#속성 표시기_분리_창
#속성 표시기_버퍼 1
#property indicator_color1 실버
#속성 표시기_너비1 2
//---- 표시기 매개변수
extern int FastEMA=12;
extern int SlowEMA=26;
외부 정수 SignalSMA=9;
//---- 표시기 버퍼
더블오즈마버퍼[];
이중 MacdBuffer[];
이중 신호 버퍼[];

//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//---- 2개의 추가 버퍼가 계산에 사용됩니다.
표시 버퍼(3);
//---- 그리기 설정
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexDrawBegin(0,SignalSMA);
IndicatorDigits(숫자+2);
//---- 3개의 인디케이터 버퍼 매핑
SetIndexBuffer(0,OsmaBuffer);
SetIndexBuffer(1, MacdBuffer);
SetIndexBuffer(2, 신호 버퍼);
//---- DataWindow의 이름 및 표시기 하위 창 레이블
IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");
//---- 초기화 완료
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 오실레이터의 이동 평균 |
//+----------------------------------------------- --------------------+
정수 시작()
{
정수 제한;
int counted_bars=IndicatorCounted();
//---- 마지막으로 계산된 막대가 다시 계산됩니다.
if(counted_bars>0) counted_bars--;
제한=막대 개수 계산된 막대기;
//---- 첫 번째 추가 버퍼에서 계산된 macd
for(int i=0; i<limit; i++)
MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- 두 번째 추가 버퍼에서 카운트된 신호 라인
for(i=0; i<한계; i++)
SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- 메인 루프
for(i=0; i<한계; i++)
OsmaBuffer[i]=MacdBuffer[i]-SignalBuffer[i];
//---- 완료

리턴(0);
}
//+----------------------------------------------- --------------------+

 
Vinin писал(а) >>
이 옵션이 적합합니다.

정말 감사합니다! 사실, 저는 함수를 다루지 않았습니다. 이제 함수를 호출하고 변수 값을 전달하고 값을 다시 가져오는 방법을 알아내야 합니다. 내가 행동의 메커니즘을 올바르게 이해한다면.

 
vlandex >> :

어떤 변수가 OsMA 값을 저장합니까?

하지만 버퍼에 있지 않습니까?

 
Infinity >> :

하지만 버퍼에 있지 않습니까?

뭐라고요?

 
vlandex писал(а) >>

뭐라고요?

오스마버퍼[]

 
vlandex >> :

뭐라고요?

дабавте перед 

Alert("Значения MacdBuffer[i]="MacdBuffer[i]);

Alert("Значения SignalBuffer[i]="SignalBuffer[i]);

Alert("Значения OSMA ="OsmaBuffer[i]);

return(0);
}


값을 정규화하기만 하면 됩니다.

 

안녕하세요.

매수 포지션 정지가 이월되지 않는 이유는 무엇입니까? 세포의 경우 모든 것이 작동합니다.

if(OrdersTotal()>0)
{
if(Bid==bubuy||Bid==busell)
{
OrderSelect (티켓, SELECT_BY_TICKET, MODE_TRADES);
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(), 0, 파란색);
}
반환(0);
}

 
1Rakso >> :

무엇이 문제가 될 수 있습니까? 테스트 도중 인디케이터가 몇 개만 보여도 어드바이저는 인디케이터의 문제점이 무엇일지 막막했다.

EA의 매개변수(숫자 또는 유형별)가 잘못 설정되었습니다.

또는 표시기에서 모든 문자열 매개변수를 제거합니다.