포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 1067

[Deleted]  

도와주세요, 제발! 2개의 파일이 있습니다: 표시기 및 권고자. #include를 통해 표시기의 기능을 올바르게 참조하는 방법은 무엇입니까? iCustom은 여러 가지 이유로 적합하지 않습니다. 다음은 지표에 쓴 내용입니다.

 bool BuyTrue( double & переменная, int переменная) export
{
   //тело функции

   return ( true );
}   

그리고 조언자에 있는 내용은 다음과 같습니다.

 #import "НазваниеИндикатора.ex4"
   bool BuyTrue( double & переменная, int переменная);
 if (BuyTrue(переменная, переменная))
Opn_B = true ;

그러나 어떤 이유로 어드바이저가 작동하지 않고 테스트 할 때 가격 차트에 표시기 가 나타나지 않습니다. 모든 것이 올바르게 작성되었으며 오류가 있는 경우 어디에 있습니까?

 
AlexeyVik :

투타.


그리고 나는 그것을 가지고 있지 않다. 하지만 파일은 분명히 어딘가에 있고, 거기에서 녹음된 정보를 얻습니다.


 

mt4로 컴파일하도록 도와주세요.

오류 ' FileClose ' 발생 - 'void' 유형의 표현식이 잘못되었습니다. TickToCVS~.mq4 84 12

파일:
 
abeiks :

그리고 나는 그것을 가지고 있지 않다. 하지만 파일은 분명히 어딘가에 있고, 거기에서 녹음된 정보를 얻습니다.


내 화면에서 메뉴는 MetaEditor에서, 귀하의 화면은 MT에서 가져온 것을 볼 수 있습니다.
[삭제]  
AlexeyVik :

EMPTY_VALUE입니다.

점프하는 위치를 찾으십시오.

고맙습니다. 당신은 내가 문제를 해결하는 데 도움이되었습니다. 로드할 때 내 표시기는 0이 아닌 첫 번째 막대부터 시작하여 막대를 계산합니다(의도적으로 수행함). 0에서는 기록 데이터가 아닌 틱 기록 에서 계산합니다. 이제 시간대를 변경하고 차트에 첨부하고 터미널을 다시 로드할 때 막대 0의 버퍼를 재설정하면 문제가 해결됩니다.
 
AlexeyVik :
내 화면에서 메뉴는 MetaEditor에서, 귀하의 화면은 MT에서 가져온 것을 볼 수 있습니다.
정확히! 고맙습니다!
 
이 주문이 효과가 있는 경우 오픈 포지션의 가격이 아닌 기록에서 주문의 시작 가격을 얻는 방법은 무엇입니까? 첨부된 기능에서 주문이 성공했다면 이 주문은 위치에서만 찾을 수 있으므로 작동하지 않습니다. 그리고 포지션에는 오픈 포지션의 가격만 있고 주문은 없습니다.
 double GetPriceLastCloseOrder( string sy= "" , int mn=- 1 ) {
   datetime t= 0 ;
   int       i, k=OrdersHistoryTotal(); 
   double r= 0 ;

   if (sy== NULL ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
       if ((OrderSymbol()==sy || sy== "" ) && (mn< 0 || OrderMagicNumber()==mn)) {
         if (OrderType()> 1 && OrderType()< 6 ) {
           if (t<OrderCloseTime()) {
            t=OrderCloseTime();
            r=OrderOpenPrice();
          }
        }
      }
    }
  }
   return (r);
}  
 

안녕하세요 여러분 질문입니다 순서를 수정할 수 없습니다 두 가지 측면이 있습니다 수정의 수학을 잘 이해하지 못합니다 대중적으로 설명하십시오

내 이해에 SL= IF ORDERSELEKT,Bid-ORDERSTOPLOS*POINT,DIGITS

두 번째 측면. XBMS 비디오에서 연구

테스터에서 변수의 값을 변경하려고 시도하지 않았기 때문에 eror 130은 올바른 정지 손실이 아니며 여기에 그녀가 있습니다.

2016.06.28 21:42:23.402 2016.06.23 00:00 거래 RSI 입력: 랏=0.1; 미끄러짐=5; 손절매 = 10; 이익을 취하다=30; RSIP 기간=7; 마법=1087;

SL이 잘못된 경우 숫자와 함수의 곱셈이 있지만


extern 이중 랏 = 0.1;

extern int 슬리피지 = 10;

extern int 손절매 = 10;

외부 정수 TakeProfit=30;

extern int RSIP 기간 = 7;

extern int Magic=1087;

이중 MarSI;


intTP,SL;

부울 tfu;


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

//| 전문가 초기화 기능 |

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

int OnInit()

{

if(숫자 == 3||숫자 == 5)

{

미끄러짐 *= 10;

이익을 취하십시오 *= 10;

손절매 *= 10;

}

반환(INIT_SUCCESSED);

}

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

//| 전문적인 초기화 해제 기능 |

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

무효 OnDeinit(const int 이유)

{


}

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

//| 전문가 틱 기능 |

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

무효 OnTick()

{

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

//판매 개시

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

MaRSI=iRSI(Symbol(),0, RSIPPeriod,PRICE_CLOSE,1);

if(CountTrades() <= 0&&MaRSI<=30 )

{

if( SendOrder(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"test",Magic,0,Green))

{ int 티켓 = OrderTicket();

SL = NormalizeDouble( 묻기 - StopLoss*Point,Digits);

TP = NormalizeDouble( 묻기 + TakeProfit*Point,Digits);

ModifyOrder(티켓,OrderOpenPrice(),SL,TP,0,블랙);

}

}// if(CountTrades <= 0&&MaRSI>=70 )

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

// 오픈 바이

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


}//온틱


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

//+주문 카운터

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


정수 CountTrades()

{

정수 개수 = 0;

for(int i = OrdersTotal()-1;i>=0;i--)

{

if( 주문선택(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)//주문이 우리 것인 경우

count++;//카운터 증가

}//인덱스로 순서 선택

}//for.i==첫 번째 모든 주문.

return(count);//주문 수를 반환합니다.

}//기능

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

//오류 처리가 있는 주문을 위한 함수

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

int SendOrder(문자열 기호, int cmd, 이중 볼륨, 이중 가격, int 미끄러짐, 이중 손절매,

이중 수익 창출,문자열 주석,int magic=0,datetime 만료=0,color arrow_color=CLR_NONE)

{

정수 오류 = GetLastError();

오류 = 0;

부울 exit_cikl = 거짓;

정수 티켓 = -1;

int Retry = 10;//주문 시도 횟수

정수 cnt = 0; //재시도 카운터

if(cmd == OP_BUY || cmd == OP_SELL)

{

동안(!exit_cycle)

{

티켓 = OrderSend(기호, cmd, 볼륨, 가격, 슬리피지, 손절매, 이익실현, 코멘트, 매직, 만료,arrow_color);

err= GetLastError();

스위치(오류)

{

사례 ERR_NO_ERROR:

exit_cycle=참;

부서지다;

사례 ERR_SERVER_BUSY:

사례 ERR_NO_CONNECTION:

사례 ERR_INVALID_PRICE:

사례 ERR_OFF_QUOTES:

사례 ERR_BROKER_BUSY:

사례 ERR_TRADE_CONTEXT_BUSY:

cnt++;

부서지다;

사례 ERR_PRICE_CHANGED:

사례 ERR_REQUOTE:

새로 고침();

계속하다;

기본:

exit_cycle=참;

부서지다;

}//스위치 스위치 스위치(err)

if(cnt > 재시도)

exit_cycle=참;

if(!exit_cikl)

{

수면(1000);

새로 고침();

}//루프를 종료하지 않으면 if(!exit_cikl)

또 다른

{

if(err != ERR_NO_ERROR)

{

Print("오류: " + IntegerToString(err));

}//일부 오류가 여전히 남아 있으면 if(err != ERR_NO_ERROR)

}//그렇지 않으면

if(err==ERR_NO_ERROR)

{

if( OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES)==true)

반환(티켓);

}// if(err==ERR_NO_ERROR)

Print("" + IntegerToString(cnt) +"시도 후 주문 열기 오류");

리턴(-1);

}//동안 루프

}//주문 유형이 매수 또는 매도인 경우

반환(티켓);

}//SendOrder 함수


//------------------------------------------------ -------------------------------------------------- -----------

//주문 수정 함수

//------------------------------------------------ -------------------------------------------------- ----------

bool ModifyOrder(int 티켓, 이중 가격, 이중 손절매, 이중 이익 실현, 날짜/시간 만료, color arrow_color)

{

if(OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES))

{

가격 = NormalizeDouble(가격, 자릿수);

정지 손실 = NormalizeDouble(정지 손실, 자릿수);

takeprofit = NormalizeDouble(takeprofit,Digits);

CheckValidStop(Symbol(),price,stoploss);//최소 스톱을 변경하는 함수

정수 오류 = GetLastError();

오류 = 0 ;

int 재시도 = 10;

정수 cnt = 0;

부울 exit_cikl = 거짓;

부울 결과;

동안(!exit_cycle)

{

result = OrderModify(티켓, 가격, 손절매, 이익실현, 만료, arrow_color);

오류 = GetLastError();

if(결과 == 참)

{

Print("주문 번호 "+ IntegerToString(티켓), "수정 성공");

반환(참);

}

스위치(오류)

{

사례 ERR_NO_ERROR:

exit_cycle=참;

부서지다;

사례 ERR_SERVER_BUSY:

사례 ERR_NO_CONNECTION:

사례 ERR_INVALID_PRICE:

사례 ERR_OFF_QUOTES:

사례 ERR_BROKER_BUSY:

사례 ERR_TRADE_CONTEXT_BUSY:

cnt++;

부서지다;

사례 ERR_PRICE_CHANGED:

사례 ERR_REQUOTE:

새로 고침();

계속하다;

기본:

exit_cycle=참;

부서지다;

}//스위치 스위치 스위치(err)

}//동안(!exit_cikl)

만약 ( err != ERR_NO_ERROR )

{

Print(" 주문 수정 오류 # " + IntegerToString(티켓));

Print("오류 코드: " + IntegerToString(err));

}

}//if(OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES))

또 다른

{

Print("주문 선택 실패, 티켓 = " + IntegerToString(티켓));

반환(거짓);

}//뭔가 잘못된 경우

반환(참);

}//함수 수정

//------------------------------------------------ -------------------------------------------------- --

//ChtckValidStop

//------------------------------------------------ --------------------------------------------------

void CheckValidStop(문자열 기호, 이중 가격, 이중 및 sl)

{

if(sl==0)

반품;

더블 min_stop_server = MarketInfo(symbol,MODE_STOPLEVEL)*MarketInfo(symbol,MODE_POINT);

if(MathAbs(price-sl) <= min_stop_server)

{

if(가격>sl)

sl = 가격 - min_stop_server;

그렇지 않으면 sl = sl + min_stop_server;

}/// if(MathAbs(price-sl) <= min_stop_server)

sl = NormalizeDouble(sl,MarketInfo(기호,MODE_DIGITS));

}//기능


[삭제]  

말해주세요!!!

거래 내역에는 두 가지 주문이 있습니다. 1) 틱 없음 매도 415 STOPLOSS 1.1000 로트 0.01 2) 틱 없음 매도 418 스톱로스 1.1000 로트 0.02

매도 가격이 매도 주문의 STOPLOSS와 같으면 X=#tick, Y=STOPLOSS 및 B=lot 변수를 할당해야 합니다. 첫 번째 순서로 변수에 값을 할당한 다음 두 번째 순서로 값을 할당하는 방법. 나에게는 항상 가치를 최우선으로 생각합니다.

 
m8akca :

말해주세요!!!

거래 내역에는 두 가지 주문이 있습니다. 1) 틱 없음 매도 415 STOPLOSS 1.1000 로트 0.01 2) 틱 없음 매도 418 스톱로스 1.1000 로트 0.02

매도 가격이 매도 주문의 STOPLOSS와 같으면 X=#tick, Y=STOPLOSS 및 B=lot 변수를 할당해야 합니다. 첫 번째 순서로 변수에 값을 할당한 다음 두 번째 순서로 값을 할당하는 방법. 나에게는 항상 가치를 최우선으로 생각합니다.

여기에서 그들은 이미 무언가를 작성한 사람들을 돕지만 제대로 작동하지 않습니다. 여기에 있는 사람들이 무엇이 잘못되었는지 보고 도움을 받을 수 있도록 코드를 제공하세요.

주문에 따라 작성하고 싶다면 여기 가 있습니다 .