[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 196

 
torah01 :

구입


정수 시작()

{
OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid - 50*Point,Bid + 50*Point);

반환(0);
}

도와주세요, 제발...

+를 -로 변경했습니다. 그리고 필요한 스탑과 테이크를 지정합니다. 이제 스탑 = 70 + 스프레드, 테이크 = +30 마이너스 스프레드가 있습니다.
 
TheXpert :
사람들을 비방하지 마십시오. 지루한 딴데 가서 좋은거면 충분해 . . .

감사합니다. 조언을 구하고 싶었을 뿐입니다.
 
NickXXX :

1. 여기서 double은 분과 시간을 추가하는 데만 사용되었습니다. 제어점을 HH로 지정할 수 있습니다 . MM (예: 16.23) .

2. 마지막 페이지를 보니 물론 datetime에 대한 내용이 있긴 하지만 정확하지 않습니다. 그들은 단지 마지막 주문의 시간인 HH.MM 형식으로 결론을 내립니다.



잘못된 검색입니다. 페이지 190, 게시 시간 2011년 9월 18일 23:03
 
nemo811 :

안녕하세요.

코드 수정을 도와주세요.

아래 두 줄 모두 버그가 있습니다.

미리 감사드립니다.

프로그램 자체:


if ( OrderSelect (i,SELECT_BY_POS, MODE_TRADES ) == true)

MODE_HISTORY가 더 논리적일 것입니다.

 
tara :

< 0.6 또는 이와 유사한 것입니다. 나눗셈의 나머지는 항상 1보다 작습니다. :)

왜 그럴까요?) 12를 10 으로 나눈 나머지 = 2.
닉XXX :

그리고 결국 다음과 같은 많은 변수를 통해:

이게 정말 나쁜 건가요? 아니면 타고?

그리고 또 다른 작은 질문이 있습니다. 허용하면 조건을 충족하기 위해 간격(예: 16.00-16.03)을 설정하겠습니다. 새로운 틱이 도착했음에도 불구하고 한 번만 실행하도록 하는 방법???

운전할 것입니다. 한 번 수행하려면 다음과 같이 추가 서비스 변수를 입력하십시오.

 bool flag= true ;

int start()
{
   if (ваше уловие по времени && flag)
  {
    тра-та-та
    flag= false ;
  }
}
 
Figar0 :

왜 그럴까요?) 12를 10으로 나눈 나머지 = 2.

운전할 것입니다. 한 번 수행하려면 다음과 같이 추가 서비스 변수를 입력하십시오.


예, 약간 오류가 있습니다. :)
 
tara :


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이 스크립트 작업에 많은 영향을 미치는 이유는 무엇입니까? ??

아래 스크립트를 제공합니다.

 extern int 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);
 
MT-4 단말기에서 메일 서버 설정은 어떤 폴더에 저장되나요?
 

동지, 도와주세요 ... 간단한 코드를 작성했지만 컴파일 할 때 대괄호가 균형이 맞지 않고 이미 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);
}
//+----------------------------------------------- ------ --------------------+

 
ps 당신처럼 아름다운 스크립트를 그리는 방법은 무엇입니까?