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

 
khorosh :
POINT와 TICKSIZE의 차이점은 무엇입니까? MarketInfo()를 통해 요청하면 동일하지만 다르게 호출되면 어떻게 달라야 합니까?
POINT 와 TICKSIZE 사이트의 차이점은 무엇입니까:mql4.com
 
khorosh :
POINT와 TICKSIZE의 차이점은 무엇입니까? MarketInfo()를 통해 요청하면 동일하지만 다르게 호출되면 어떻게 달라야 합니까?

악기마다 다른 경우가 있습니다
 
Vinin :

악기마다 다른 경우가 있습니다
고맙습니다. 포인트는 측정 단위인 페니와 같습니다. Tixize는 최소 가격 변동 입니다. 분명히, ticksize는 포인트보다 작을 수는 없지만 더 많을 수 있습니다. 아마도 이것이 DC를 결정합니다.
 
EXCEL 통합 문서(열려 있음)에서 MQL의 매크로를 실행할 수 있습니까?
 
rustein :
레버리지 등을 고려하여 최대 허용 로트 크기를 계산하는 방법은 무엇입니까?
감사해요
 double MeansOneLot       = MarketInfo (Symb,MODE_MARGINREQUIRED);       //Необходимо средств для открытия 1 лота
double MeansFree         = AccountFreeMargin ();                       //Значение свободных средств, разрешенных для открытия позиций
double MeansGuaranty     = AccountMargin ();                           //Значение залоговых средств, используемых для поддержания открытых позиций
double LotPriceTic       = MarketInfo (Symb, MODE_TICKVALUE);           //Стоимость 1 лота в валюте депо на 1 тик
double MaxLotPermissible = MathFloor ((MeansFree/MeansOneLot)* 100 )/ 100 ; //Максимально допустимый лот для открытия позиции
 
joo :

좋은 감사합니다
 

파일을 텍스트에 첨부하는 데 도움이 됩니다.

 
친구, 문제 해결을 도와주세요... TicketArray 배열에 티켓 번호(3개)가 기록되어 있습니다. 그리고 이제 나는 엘크를 3 번 연속으로 얻을 때 고문이 거래를 멈추기를 원합니다 ... 처음에는 엘크 3 마리의 조건을 쓸 수 없습니다 ... 친절한 뱀이 한때 나에게 깃발에 대한 지식을 주었다 a 오래 전, 지금은 널리 사용하지만 여전히 아무것도 나오지 않습니다. 손실의 첫 번째 주문을 닫은 후 EA가 true를 반환하고 제대로 작동합니다... 왜죠?

bool flag = true; //по умолчанию флаг стоит на правду
for ( int j= 1 ;j< 4 ;j++) //цикл из 3х значений (1,2,3)
{
OrderSelect (TicketArray[j],SELECT_BY_TICKET); //выбираю ордер

if ( OrderClosePrice ()!= OrderStopLoss () && TicketArray[j]== 0 )flag = false; //думаю, тут проблема. Условие: если ордер не получил лося 3 раза и если у тикета еще нет номера, то такая ситуация меня не устраивает.
Print ( OrderClosePrice (), ",,,,," , OrderStopLoss (), ",,,,," ,TicketArray[j]); //эта строчка для тестера, чтоб наглядно было видно цену закрытия, цену стопа и номер тикета. Хоть тикет и =0, но все равно пишет true.
}
Alert (flag);

만일을 대비하여 전체 고문을 게시합니다. 이것은 내가 교육 목적으로 직접 쓴 일반 마틴게일입니다.

//+------------------------------------------------------------------+
//| StMartin.mq4 |
//| Sergey Kodolov |
//| 84232676421@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Sergey Kodolov"
#property link "84232676421@mail.ru"

extern int TP = 1000 ; 
extern int TS = 1000 ; 
extern int TF = 1 ; 
extern double lots = 0.1 ; 


double volumz;
int ticket,total;
int slip = 3 ; 
int Magic = 4 ; 

int TicketArray[ 4 ];

void FormTicket( int number) //объявил шаблон под функцию запоминания тикетов
{
for ( int i= 3 ;i> 0 ;i--)
{
TicketArray[ 0 ] = ticket;
if (TicketArray[ 0 ]> 0 && TicketArray[ 0 ] == TicketArray[ 1 ]) break ;
TicketArray[i] = TicketArray[i- 1 ];
} 
}

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
ticket = OrderSend ( Symbol (),OP_BUY,lots,Ask,slip,Bid-TS* Point ,Bid+TP* Point , "First order" ,Magic, 0 , Yellow ); //открываем первый ордер
//----
return ( 0 );
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return ( 0 );
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
int OrderTimeCheck = check3(); //проверяем, закрыт ли ордер
bool OrderCloseCheck = check2(OrderTimeCheck); //проверяем, закрылись ли ордера в минус
FormTicket(ticket); //вызываем функцию, чтоб запоминала тикеты
ProfitCheck(OrderCloseCheck); //тут рисуем линии

total = OrdersTotal ();
if (total < 1 )
{
OrderSelect (TicketArray[ 1 ],SELECT_BY_TICKET);
volumz = OrderLots ();
if ( OrderProfit ()<= 0 )
{
if ( OrderType () == OP_BUY)
{ 
double lot1 = volumz* 2 ;
ticket = OrderSend ( Symbol (),OP_SELL,lot1,Bid,slip,Ask+TS* Point ,Ask-TP* Point , 0 ,Magic, 0 , Green );
}
if ( OrderType () == OP_SELL)
{ 
double lot2 = volumz* 2 ;
ticket = OrderSend ( Symbol (),OP_BUY,lot2,Ask,slip,Bid-TS* Point ,Bid+TP* Point , 0 ,Magic, 0 , Red );
}
}
if ( OrderProfit ()> 0 )
{
if ( OrderType () == OP_BUY)
{
ticket = OrderSend ( Symbol (),OP_BUY,lots,Ask,slip,Bid-TS* Point ,Bid+TP* Point , 0 ,Magic, 0 , Green );
}
if ( OrderType () == OP_SELL)
{
ticket = OrderSend ( Symbol (),OP_SELL,lots,Bid,slip,Ask+TS* Point ,Ask-TP* Point , 0 ,Magic, 0 , Red );
}
} 

} 
//----
return ( 0 );
}
//+------------------------------------------------------------------+


int check3() //проверяем, закрыт ли ордер
{
OrderSelect (TicketArray[ 1 ],SELECT_BY_TICKET);
if ( OrderCloseTime ()> 0 ) return ( 100 );
}

bool check2( int OrderTimeCheck) //проверяем, если ордер закрыт, то последние 3 закрытых ордера были ли убыточными?
{
if (OrderTimeCheck == 100 )
{
bool flag = true;
for ( int j= 1 ;j< 4 ;j++)
{
OrderSelect (TicketArray[j],SELECT_BY_TICKET);

if ( OrderClosePrice ()!= OrderStopLoss () && TicketArray[j]== 0 )flag = false; //ТУТ ДОДУМАТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Print ( OrderClosePrice (), ",,,,," , OrderStopLoss (), ",,,,," ,TicketArray[j]);
}
Alert (flag);
if (flag == true)
{
ObjectCreate ( "NewLabel" , OBJ_LABEL , 0 , 0 , 0 );
ObjectSetText ( "NewLabel" , "Ура" , 14 , "Arial" , Aqua );
ObjectSet ( "NewLabel" , OBJPROP_CORNER , 1 );
ObjectSet ( "NewLabel" , OBJPROP_XDISTANCE , 40 );
ObjectSet ( "NewLabel" , OBJPROP_YDISTANCE , 40 );
}
} 
}

void ProfitCheck( bool OrderCloseCheck)
{
if (OrderCloseCheck == true) 
{
Print ( "x" );
} 
} 
 

PerkyAsctrend1 표시기의 버퍼 중 하나를 읽을 수 없습니다.
이해를 도와주세요. 나는 항상 문제없이 다른 지표로 여러 번 수행했습니다. 그것은 바로 여기에서 작동하지 않습니다.
두 개의 버퍼를 읽었습니다. 그 중 하나는 다음과 같습니다.
이중 PerkyBuf2=iCustom(NULL,0," PerkyAsctrend1 ",5,250,0,1); - 올바르게 읽히고 신호가 잡혔습니다. 다음 줄에서 신호를 잡으려고 합니다.
이중 PerkyBuf1=iCustom(NULL,0," PerkyAsctrend1 ",5,250,1,1); 이 버퍼의 모든 신호는 내 Expert Advisor를 통과합니다. 이 2가지 포인트로 빈 Expert Advisor를 만들어보기도 했는데, Comment() 는 화면에 결과를 보여주었다. 매도 신호가 잡히지 않습니다.
이해하도록 도와주세요.
인디케이터를 동봉
파일:
 
Qoren :

PerkyAsctrend1 표시기의 버퍼 중 하나를 읽을 수 없습니다.
이해를 도와주세요. 나는 항상 문제없이 다른 지표로 여러 번 수행했습니다. 여기에서는 작동하지 않습니다.
두 개의 버퍼를 읽었습니다. 그 중 하나는 다음과 같습니다.
이중 PerkyBuf2=iCustom(NULL,0," PerkyAsctrend1 ",5,250,0,1); - 올바르게 읽히고 신호가 잡혔습니다. 다음 줄에서 신호를 잡으려고 합니다.
이중 PerkyBuf1=iCustom(NULL,0," PerkyAsctrend1 ",5,250,1,1); 이 버퍼의 모든 신호는 내 Expert Advisor를 통과합니다. 이 2가지 포인트로 빈 Expert Advisor를 만들어보기도 했는데, Comment()는 화면에 결과를 보여주었다. 매도 신호가 포착되지 않습니다.
이해하도록 도와주세요.
인디케이터를 동봉

버퍼 0의 매수 신호, 버퍼 1의 매도 신호

확인할 스크립트:

 //+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                             Copyright © 2011, Trishkin Artyom A. |
//|                                           support@goldsuccess.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Trishkin Artyom A."
#property link       "support@goldsuccess.ru"
//                   Skype: artmedia70

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int count= WindowBarsPerChart ();
   for ( int i= 0 ; i<count; i++) {
       double buf0= iCustom ( Symbol (), Period (), "PerkyAsctrend1_1" , 4 , 250 , 0 ,i);
       double buf1= iCustom ( Symbol (), Period (), "PerkyAsctrend1_1" , 4 , 250 , 1 ,i);
       if (buf0!= EMPTY_VALUE ) Alert ( "В буфере 0 на баре " , iBarShift ( Symbol (), Period (),Time[i]), " сигнал на Buy = " , DoubleToStr (buf0, Digits ));
       if (buf1!= EMPTY_VALUE ) Alert ( "В буфере 1 на баре " , iBarShift ( Symbol (), Period (),Time[i]), " сигнал на Sell = " , DoubleToStr (buf1, Digits ));
      }
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+