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

[삭제]  

여보세요

나는 작가가 되기로 결심했다. 나는 외국어 MQL 4로 뭔가를 쓰고 싶었습니다. 그것에 대해 뭔가를 읽었습니다. 글쎄, 줄거리는 RSI 때 셀 위치를 여는 간단한 전문가를 작성하기 위해 태어났습니다. 8의 기간으로 70을 교차하고 위치를 닫습니다. 레벨 30을 넘고 아무 일도 일어나지 않습니다. 작성했습니다. 여기에 코드가 있습니다.

//+----------------------------------------------- --------------------+
//| 4doc.mq4 |
//| 알렉스 |
//| http://www.metaquotes.net |
//+----------------------------------------------- --------------------+
#재산권 "알렉스"
#속성 링크 "http://www.metaquotes.net"

//---- 입력 매개변수
외부 정수 PerRSI=8;
외부 정수 MagicNumber=77771;

extern 이중 로트=1.0;

/+------------------------------------------------ ------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
정수
cnt=0,
티켓,
총;
더블
rsi_0, // 값. rsi_0 현재
rsi_1; // 값. rsi_1 첫 번째 막대
if(막대<100)
{
Print("100개 미만의 막대");
리턴(0);
}
rsi_0=iRSI(NULL,0, PerRSI,0,0); // 현재 막대
rsi_1=iRSI(NULL,0, PerRSI,0,1); // 현재 막대에 1을 더한 값
총계=주문총계();
if(총<1)
if(rsi_0 < rsi_1 && rsi_0 > 70) // 선이 70을 넘으면
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "My RSI", MagicNamber,0,Green);
if(티켓>0)
{
if(OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES))
Print("판매 주문이 열렸습니다 : ",OrderOpenPrice());
}
else Print("판매 주문 열기 오류: ",GetLastError());
리턴(0);
}
for(cnt=0;cnt<전체;cnt++)
{
새로 고침();
주문 선택(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // 오픈 포지션인가요? OP_BUY or OP_SELL
OrderSymbol()==Symbol()) // 기기가 일치합니까?
{
if(OrderType()==OP_SELL) // 열린 말뭉치
{
if(rsi_0 > rsi_1 && rsi_0 < 30) // 선이 30을 넘으면
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,바이올렛); // 포지션을 닫는다
리턴(0); // 출구

}}}}}}

나는 그것을 테스트했고 모든 것이 기본적으로 다음과 같습니다. 원했다. SS I 때 코드를 변경하기로 결정 – 14는 레벨 100을 교차합니다. – 선택 위치가 열렸고 위치가 닫혔을 때 레벨을 넘어 - 100. RSI 변경 SS I 의 코드 , 그가 있다.

//+----------------------------------------------- --------------------+
//| CCI-DOC.mq4 |
//| 알렉스 |
//| http://www.metaquotes.net |
//+----------------------------------------------- --------------------+
#재산권 "알렉스"
#속성 링크 "http://www.metaquotes.net"

//---- 입력 매개변수
extern int PerCCI=14;
외부 정수 MagicNumber=88881;

extern 이중 로트=1.0;

//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
정수
cnt=0,
티켓,
총;
더블
cci_0, // 값. cci_0 현재
cci_1; // 값. cci_1 첫 번째 막대
if(막대<100)
{
Print("100개 미만의 막대");
리턴(0);
}
cci_0=iRSI(NULL,0, PerCCI,0,0); // 현재 막대
cci_1=iRSI(NULL,0, PerCCI,0,1); // 현재 막대에 1을 더한 값
총계=주문총계();
if(총<1)
if(cci_0 < cci_1 && cci_0 > 100) // 라인이 100을 넘었을 때
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "My CCI", MagicNamber,0,Green);
if(티켓>0)
{
if(OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES))
Print("판매 주문이 열렸습니다 : ",OrderOpenPrice());
}
else Print("판매 주문 열기 오류: ",GetLastError());
리턴(0);
}
for(cnt=0;cnt<전체;cnt++)
{

주문 선택(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // 오픈 포지션인가요? OP_BUY or OP_SELL
OrderSymbol()==Symbol()) // 기기가 일치합니까?
{
if(OrderType()==OP_SELL) // 열린 말뭉치
{
if(cci_0 > cci_1 && cci_0 < -100) // 선이 교차하는 경우 -100
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,바이올렛); // 포지션을 닫는다
반환(0); // 출구
}}}}}}

CCI 가 되다 시험….. 글쎄, 아무 일도 일어나지 않고, 팔지 않고, 사지 않고, 로그에 오류가 없습니다. 테스트가 끝나면 곡선 차트가 열리지만 이것은 CC I 이 아니라 RSI 70-30 14의 기간 ... .. 아마도 숙련 된 작가 중 한 명이 이해하고 해결하는 이유와 방법을 말할 것입니다.

 
pepsi писал(а) >>
그러면 잡지의 데모에서 모든 것이 더 명확하게 그려질 것입니다. 오류를 찾을 위치가 더 명확합니다. 그 자신...

고맙습니다

[Удален]  

또 안녕!!!!!!!

/unobtrussively/;-)) Mashka의 거래 조건에 대한 64페이지의 내 질문을 상기시켜 드리고 싶습니다 ... 미리 감사드립니다(찻주전자를 두드리는 것에 대해)

 

여러분, 터미널에서 한 거래 상품의 여러 다른 시간 차트를 사용하면

프로그램에서 트래픽을 어떻게 소비합니까? 최소 기간의 트래픽이 소비됩니까, 아니면 모든 기간의 트래픽이 소모됩니까?

 
igrok2008 >> :

또 안녕!!!!!!!

/unobtrussively/;-)) Mashka의 거래 조건에 대한 64페이지의 내 질문을 상기시켜 드리고 싶습니다 ... 미리 감사드립니다(찻주전자를 두드리는 것에 대해)

 int start ( )
  {
//----
    double MA_0 = iMA ( NULL , 0 , pMA , pSh , mode , price , 0 ) ;
    double MA_1 = iMA ( NULL , 0 , pMA , pSh , mode , price , 1 ) ;

    перед использованием в коде open_1 или  open_0 их нужно инициализировать , т . е . объяснить программе
    к виду каких данных эти опены относятся ( целые , дробные , строчные , логические )

    double open_0 = Open [ 0 ] ; //  double - дробное число. 0 и 1 это номера ячееек,
    double open_1 = Open [ 1 ] ; // которые в данном случае являются номерами баров
        
    if ( MA_1 < Open [ 1 ] & & MA_0 > Open [ 0 ] )
     if ( CheckOrders ( OP_SELL ) ) //продажа
      {
       if ( ! OrderSend ( Symbol ( ) , OP_BUY , Lots , Ask , 3 , 0 , 0 , NULL , MagicNumber ) )
         Print ( "Не открыт ордер Buy. Ошибка №" , GetLastError ( ) ) ; 
       }
       
    if ( MA_1 > Open [ 1 ] & & MA_0 < Open [ 0 ] )
     if ( CheckOrders ( OP_BUY ) ) //покупка
      {
       if ( ! OrderSend ( Symbol ( ) , OP_SELL , Lots , Bid , 3 , 0 , 0 , NULL , MagicNumber ) )
         Print ( "Не открыт ордер Sell. Ошибка №" , GetLastError ( ) ) ; 
       }
//----
   return ( 0 ) ;
  }
[Удален]  
KONDOR >> :

답변 해주셔서 감사합니다!!!

1. 명확히 하자면, double open_0과 double_1이 있는 두 행은 이중 MA 행보다 먼저 작성되어야 합니다. 그렇지 않으면 중요하지 않습니까 ???????...

2. 거래 조건에서 open[0,1]을 open_0,1로 바꿀 수 있습니다 ????????.....

 
igrok2008 >> :

답변 해주셔서 감사합니다!!!

1. 명확히 하자면, double open_0과 double_1이 있는 두 행은 이중 MA 행보다 먼저 작성되어야 합니다. 그렇지 않으면 중요하지 않습니까 ???????...

2. 거래 조건에서 open[0,1]을 open_0,1로 바꿀 수 있습니다 ????????.....

1. 중요하지 않음

2. 수

[삭제]  

도와주세요... 물론 제가 게으른 것일 수도 있지만 데모 또는 실제 계정 에서 거래하기 위해 프로그램을 연결하는 방법을 알 수 없습니다... 무엇을 써야 하는지, 어디에 노래를 불러야 하는지, 잘 부탁드립니다... 미리 감사드립니다!))

[삭제]  
쓰기 - 테스터에서 작성, 거래되었지만 데모 또는 실제 거래를 원하지 않으며 일반적으로 신호가 없지만 (((
[Удален]  
keekkenen >> :

1. 중요하지 않음

2. 수

CGFCB<J 즉, 감사합니다!!!!