if ( OrderSelect (i,SELECT_BY_POS, MODE_TRADES ) == true)
MODE_HISTORY가 더 논리적일 것입니다.
전적으로 지지합니다. 밤에는 생각이 느려집니다.
하지만 이번 수정을 통해서도 int MAGIC 변수를 다시 선언할 때 스크립트에서 위의 오류(magic 변수와 숫자의 혼동)가 발생한다는 것을 알았습니다. (어째서인지 바로 이 마법이 막혀 있다). int MAGIC을 제거합니다. (extern int MAGIC = 1로 유지됨) - 모든 것이 시계처럼 작동합니다.
논리적인 질문 - 왜 이 누나가 필요한가요? 제거된 int MAGIC; 그리고 평화롭게 살아라. 하지만.
이 코드를 라이브러리에 넣어야 합니다. 그리고 int MAGIC의 선언 없이; - 오류가 발생합니다.
여기 내가 생각하는 것이 있습니다. 이 모든 것이 내 Expert Advisor에서 작동합니까? 그리고 이 int MAGIC이 스크립트 작업에 많은 영향을 미치는 이유는 무엇입니까? ??
아래 스크립트를 제공합니다.
externint MAGIC = 1 ;
//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+int start()
{
//----int OrdTicket=OrdTicket_b();
Alert (OrdTicket);
//----return ( 0 );
}
//+------------------------------------------------------------------+int OrdTicket_b()
{
string SMB= Symbol ();
int OrdTicket;
int i;
for (i= 0 ;i< OrdersTotal ();i++)
{
if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
{
if ( OrderSymbol ()==SMB)
{
if ( OrderMagicNumber ()==MAGIC || OrderMagicNumber ()== 777 )
{
if ( OrderType ()==OP_BUY || OrderType ()==OP_SELL)
{
OrdTicket= OrderTicket ();
}
}
}
}
}
return (OrdTicket);
외부 정수 TP = 100; 외부 정수 TS = 100; 외부 이중 로트 = 0.1; int 슬립 = 3; 정수 마법 = 1;
//+----------------------------------------------- --------------------+ //| 전문가 초기화 기능 | //+----------------------------------------------- --------------------+ 정수 초기화() { //----
//---- 리턴(0); } //+----------------------------------------------- --------------------+ //| 전문가 초기화 해제 기능 | //+----------------------------------------------- --------------------+ 정수 초기화() { //----
//---- 리턴(0); } //+----------------------------------------------- --------------------+ //| 전문가 시작 기능 | //+----------------------------------------------- --------------------+ 정수 시작() { //----
int 합계, 티켓; //공지된 총계 및 티켓 정수 신호 = signal_MACD(); //MACD 신호는 신호에 값을 전달합니다. 분석 신호(신호); // 신호 분석 신호 분석 int MACD[8] = {0,1,2,3,4,5,6,7}; //1차원 MACD 배열 생성 MACD[0] = iMACD(기호(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,7); MACD[1] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,6); MACD[2] = iMACD(기호(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,5); MACD[3] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,4); MACD[4] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,3); MACD[5] = iMACD(기호(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,2); MACD[6] = iMACD(기호(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,1); MACD[7] = iMACD(기호(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,0);
구입
정수 시작()
{
OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid - 50*Point,Bid + 50*Point);
반환(0);
}
도와주세요, 제발...
사람들을 비방하지 마십시오. 지루한 딴데 가서 좋은거면 충분해 . . .
감사합니다. 조언을 구하고 싶었을 뿐입니다.
1. 여기서 double은 분과 시간을 추가하는 데만 사용되었습니다. 제어점을 HH로 지정할 수 있습니다 . MM (예: 16.23) .
2. 마지막 페이지를 보니 물론 datetime에 대한 내용이 있긴 하지만 정확하지 않습니다. 그들은 단지 마지막 주문의 시간인 HH.MM 형식으로 결론을 내립니다.
잘못된 검색입니다. 페이지 190, 게시 시간 2011년 9월 18일 23:03
안녕하세요.
코드 수정을 도와주세요.
아래 두 줄 모두 버그가 있습니다.
미리 감사드립니다.
프로그램 자체:
if ( OrderSelect (i,SELECT_BY_POS, MODE_TRADES ) == true)
MODE_HISTORY가 더 논리적일 것입니다.
< 0.6 또는 이와 유사한 것입니다. 나눗셈의 나머지는 항상 1보다 작습니다. :)
왜 그럴까요?) 12를 10 으로 나눈 나머지 = 2.
그리고 결국 다음과 같은 많은 변수를 통해:
이게 정말 나쁜 건가요? 아니면 타고?
그리고 또 다른 작은 질문이 있습니다. 허용하면 조건을 충족하기 위해 간격(예: 16.00-16.03)을 설정하겠습니다. 새로운 틱이 도착했음에도 불구하고 한 번만 실행하도록 하는 방법???
운전할 것입니다. 한 번 수행하려면 다음과 같이 추가 서비스 변수를 입력하십시오.
왜 그럴까요?) 12를 10으로 나눈 나머지 = 2.
운전할 것입니다. 한 번 수행하려면 다음과 같이 추가 서비스 변수를 입력하십시오.
예, 약간 오류가 있습니다. :)
if ( OrderSelect (i,SELECT_BY_POS, MODE_TRADES ) == true)
MODE_HISTORY가 더 논리적일 것입니다.
전적으로 지지합니다. 밤에는 생각이 느려집니다.
하지만 이번 수정을 통해서도 int MAGIC 변수를 다시 선언할 때 스크립트에서 위의 오류(magic 변수와 숫자의 혼동)가 발생한다는 것을 알았습니다. (어째서인지 바로 이 마법이 막혀 있다). int MAGIC을 제거합니다. (extern int MAGIC = 1로 유지됨) - 모든 것이 시계처럼 작동합니다.
논리적인 질문 - 왜 이 누나가 필요한가요? 제거된 int MAGIC; 그리고 평화롭게 살아라. 하지만.
이 코드를 라이브러리에 넣어야 합니다. 그리고 int MAGIC의 선언 없이; - 오류가 발생합니다.
여기 내가 생각하는 것이 있습니다. 이 모든 것이 내 Expert Advisor에서 작동합니까? 그리고 이 int MAGIC이 스크립트 작업에 많은 영향을 미치는 이유는 무엇입니까? ??
아래 스크립트를 제공합니다.
동지, 도와주세요 ... 간단한 코드를 작성했지만 컴파일 할 때 대괄호가 균형이 맞지 않고 이미 300 번 세었습니다. 모든 것이 제자리에 있습니다.
아이디어는 더 이상 간단하지 않습니다. MACD가 7분 이상 0보다 높거나 낮으면 포지션이 열립니다.
//+----------------------------------------------- --------------------+
//| MACD ^^^.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+----------------------------------------------- --------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#속성 링크 "http://www.metaquotes.net"
외부 정수 TP = 100;
외부 정수 TS = 100;
외부 이중 로트 = 0.1;
int 슬립 = 3;
정수 마법 = 1;
//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----
//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----
//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
//----
int 합계, 티켓; //공지된 총계 및 티켓
정수 신호 = signal_MACD(); //MACD 신호는 신호에 값을 전달합니다.
분석 신호(신호); // 신호 분석 신호 분석
int MACD[8] = {0,1,2,3,4,5,6,7}; //1차원 MACD 배열 생성
MACD[0] = iMACD(기호(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,7);
MACD[1] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,6);
MACD[2] = iMACD(기호(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,5);
MACD[3] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,4);
MACD[4] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,3);
MACD[5] = iMACD(기호(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,2);
MACD[6] = iMACD(기호(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,1);
MACD[7] = iMACD(기호(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,0);
총계 = OrdersTotal(); //총 주문 수
int signal_MACD() // MACD 신호에 서명
{
if(total<1) //주문이 1개 미만이면 조건을 고려합니다.
{
if(MACD[0]<0)
{
if(MACD[1]>0)
{
if(MACD[2]>0)
{
if(MACD[3]>0)
{
if(MACD[4]>0)
{
if(MACD[5]>0)
{
if(MACD[6]>0)
{
if(MACD[7]<0)
{
반환(-100);
}
}
}
}
}
}
}
}
if(MACD[0]>0)
{
if(MACD[1]<0)
{
if(MACD[2]<0)
{
if(MACD[3]<0)
{
if(MACD[4]<0)
{
if(MACD[5]<0)
{
if(MACD[6]<0)
{
if(MACD[7]>0)
{
반환(100);
}
}
}
}
}
}
}
}
}
}
무효 AnalyzeSignal(int 신호)
{
if(신호 == 100)
{
티켓 = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"구매",Magic,0,Green);
if(티켓>0)
{
주문선택(티켓,SELECT_BY_TICKET);
Print("정가로 구매 가능:" OrderOpenPrice());
}
또 다른
{
Print("다음으로 인해 열지 못했습니다:" GetLastError());
리턴(0);
}
}
if(신호 == -100)
{
티켓 = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,"판매",Magic,0,Green);
if(티켓>0)
{
주문선택(티켓,SELECT_BY_TICKET);
Print("오픈 가격:" OrderOpenPrice());
}
또 다른
{
Print("다음으로 인해 열지 못했습니다:" GetLastError());
리턴(0);
}
}
}
//----
반환(0);
}
//+----------------------------------------------- ------ --------------------+