나는 작가가 되기로 결심했다. 나는 외국어 MQL 4로 뭔가를 쓰고 싶었습니다. 그것에 대해 뭔가를 읽었습니다. 글쎄, 줄거리는 RSI 때 셀 위치를 여는 간단한 전문가를 작성하기 위해 태어났습니다.8의 기간으로 70을 교차하고 위치를 닫습니다.레벨 30을 넘고 아무 일도 일어나지 않습니다. 작성했습니다. 여기에 코드가 있습니다.
//---- 입력 매개변수 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의 기간 ... .. 아마도 숙련 된 작가 중 한 명이 이해하고 해결하는 이유와 방법을 말할 것입니다.
/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);}
여보세요
나는 작가가 되기로 결심했다. 나는 외국어 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의 기간 ... .. 아마도 숙련 된 작가 중 한 명이 이해하고 해결하는 이유와 방법을 말할 것입니다.
그러면 잡지의 데모에서 모든 것이 더 명확하게 그려질 것입니다. 오류를 찾을 위치가 더 명확합니다. 그 자신...
고맙습니다
또 안녕!!!!!!!
/unobtrussively/;-)) Mashka의 거래 조건에 대한 64페이지의 내 질문을 상기시켜 드리고 싶습니다 ... 미리 감사드립니다(찻주전자를 두드리는 것에 대해)
여러분, 터미널에서 한 거래 상품의 여러 다른 시간 차트를 사용하면
프로그램에서 트래픽을 어떻게 소비합니까? 최소 기간의 트래픽이 소비됩니까, 아니면 모든 기간의 트래픽이 소모됩니까?
또 안녕!!!!!!!
/unobtrussively/;-)) Mashka의 거래 조건에 대한 64페이지의 내 질문을 상기시켜 드리고 싶습니다 ... 미리 감사드립니다(찻주전자를 두드리는 것에 대해)
답변 해주셔서 감사합니다!!!
1. 명확히 하자면, double open_0과 double_1이 있는 두 행은 이중 MA 행보다 먼저 작성되어야 합니다. 그렇지 않으면 중요하지 않습니까 ???????...
2. 거래 조건에서 open[0,1]을 open_0,1로 바꿀 수 있습니다 ????????.....
답변 해주셔서 감사합니다!!!
1. 명확히 하자면, double open_0과 double_1이 있는 두 행은 이중 MA 행보다 먼저 작성되어야 합니다. 그렇지 않으면 중요하지 않습니까 ???????...
2. 거래 조건에서 open[0,1]을 open_0,1로 바꿀 수 있습니다 ????????.....
1. 중요하지 않음
2. 수
도와주세요... 물론 제가 게으른 것일 수도 있지만 데모 또는 실제 계정 에서 거래하기 위해 프로그램을 연결하는 방법을 알 수 없습니다... 무엇을 써야 하는지, 어디에 노래를 불러야 하는지, 잘 부탁드립니다... 미리 감사드립니다!))
1. 중요하지 않음
2. 수
CGFCB<J 즉, 감사합니다!!!!