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

 
ФВ > 30 인 매개변수 세트가 없으면 어드바이저가 퍼니스에 있는 것입니다.

그리고 그런 PV를 가진 어드바이저가 많고 동시에 거래 횟수가 최소 200개(구매 및 판매는 100개) 이상?!

동시에 Z-축에서 "순이익" 매개변수뿐만 아니라 "회수 계수" 또는 최대 손실도 설정하고 이미 이러한 위치에서 살펴봅니다.

MT5에는 이미 그러한 것이 있지만 이 프로그램에서와 같이 "슬라이스"를 수행할 수는 없지만 매우 편리하고 시각적입니다. 어쩌면 개발자에게 물어보면 그들이 할 것입니다 ...
 
FelixFX :

안녕하세요!

사용자 정의 함수에서 여러 값을 반환하는 방법을 알 수 없습니까? 어렵지 않다면 말해주세요.



이것은 당신을 위한 파스칼이 아닙니다 - 여기에는 절차가 없습니다 ... :-) 하나의 기능 - 하나의 값 ... :-)

모든 주문을 마감하려면 스크립트의 GetMarketInfo 기능을 참조하십시오. 배열을 사용하는 것이 가능합니다.

 //+------------------------------------------------------------------+
//|                                               CloseAllOrders.mq4 |
//|                       Copyright © 2008, PRMQuotes Software Corp. |
//|                                           Jedimedic77@gmail.com  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, PRMQuotes Software Corp."
#property link       ""
//+------------------------------------------------------------------+
//| EX4 imports                                                      |
//+------------------------------------------------------------------+
#include <stdlib.mqh>
//+------------------------------------------------------------------+
//| global variables to program:                                     |
//+------------------------------------------------------------------+
double Price[ 2 ];
int     giSlippage;
bool    CloseOpenOrders = true;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
void start() {
   int iOrders= OrdersTotal ()- 1 , i;
  
   if (CloseOpenOrders) {
     for (i=iOrders; i>= 0 ; i--) {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES) && ( OrderType ()<=OP_SELL) && GetMarketInfo() && ! OrderClose ( OrderTicket (), OrderLots (),Price[ 1 - OrderType ()],giSlippage)) Print (OrderError());
    }
  }
}
//+------------------------------------------------------------------+
//| Function..: OrderError                                           |
//+------------------------------------------------------------------+
string OrderError() {
   int iError= GetLastError ();
   return ( StringConcatenate ( "Order:" , OrderTicket (), " GetLastError()=" ,iError, " " ,ErrorDescription(iError)));
}
//+------------------------------------------------------------------+
//| Function..: GetMarketInfo                                        |
//+------------------------------------------------------------------+
bool GetMarketInfo() {
   RefreshRates ();
  Price[ 0 ]= MarketInfo ( OrderSymbol (),MODE_ASK);
  Price[ 1 ]= MarketInfo ( OrderSymbol (),MODE_BID);
   double dPoint= MarketInfo ( OrderSymbol (),MODE_POINT);
   if (dPoint== 0 ) return (false);
  giSlippage=(Price[ 0 ]-Price[ 1 ])/dPoint;
   return (Price[ 0 ]> 0.0 && Price[ 1 ]> 0.0 );
}
//+------------------------------------------------------------------+
 
Diubakin :

그리고 그런 PV를 가진 어드바이저가 많고 동시에 거래 횟수가 최소 200개(구매 및 판매는 100개) 이상?!

...

충분한. FV=34. 그리고 당신은 실제로이 질문을 잘못된 주소로 보냈습니다 ... :-) 또한이 지점을 읽으면 저자가 분명히이 숫자를 썼습니다.

차량용 30개, 서류가방용 100개 - 그의 IMHO .... " 말을 왜곡하지 마십시오. 그래야 한다고 말하지 않았습니다. 30은 제 개인적인 변덕입니다. 더 이상은... "

 

Roman

...

죄송합니다. 당신이 다른 것을 인용한 것을 눈치채지 못했지만 보고서는 인상적입니다.

 
Diubakin :

죄송합니다. 당신이 다른 것을 인용한 것을 눈치채지 못했지만 보고서는 인상적입니다.


:-) 작업...
 
                           ticket= OrderSend ( Symbol (),OP_BUYSTOP , 0.01 ,Ask+q* Point , 5 , 0 ,Ask+ 50 * Point , "Aw" ,MN, 0 , CLR_NONE );
                           ticket= OrderSend ( Symbol (),OP_SELLSTOP, 0.01 ,Bid-q* Point , 5 , 0 ,Bid- 50 * Point , "Aw" ,MN, 0 , CLR_NONE );
                           if (!ticket) Print ( GetLastError ());

                        ticket= OrderTicket ();                           
                         for (i= OrdersTotal (); i> 0 ;  i--)
                        {
                           if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==true)
                           {
                               if ( OrderComment ()== "Aw" )
                              {
                                 if ( OrderType ()==OP_BUYSTOP)
                                 {
                                    t= OrderModify ( OrderTicket (),pb, 0 ,TPb, 0 , CLR_NONE );
                                     if (!t) Print ( "BUY О Ш И Б К А = " , GetLastError ());
                                 }
                                    
                                 if ( OrderType ()==OP_SELLSTOP)
                                 {
                                    t= OrderModify ( OrderTicket (),ps, 0 ,TPs, 0 , CLR_NONE );
                                     if (!t) Print ( "SELL О Ш Ы Б К А = " , GetLastError ());
                                 }
                              }
                           }
                        }

도움을 요청합니다!

코드는 두 개의 탭을 엽니다. 둘 다 수정해야합니다..

그러나 샐 보증금만 수정합니다.

q=20;

pb=요청+20*포인트;

ps=입찰가+20*포인트;

Tb=요청+50*포인트;

Ts=입찰가+50*포인트1;

 
smartemiy :

도움을 요청합니다!

코드는 두 개의 탭을 엽니다. 둘 다 수정해야합니다..

그러나 샐 보증금만 수정합니다.

q=20;

pb=요청+20*포인트;

ps=입찰가+20*포인트;

Tb=요청+50*포인트;

Ts=입찰가+50*포인트1;

당신이 숫자로 무엇을 얻을 참조

 if ( OrderType ()==OP_ BUYSTOP )
{
 t= OrderModify ( OrderTicket (), pb , 0 ,TPb, 0 , CLR_NONE );
 if (!t) Print ( "BUY О Ш И Б К А = " , GetLastError ());
}
                                    
if ( OrderType ()==OP_ SELLSTOP )
{
  t= OrderModify ( OrderTicket (), ps , 0 ,TPs, 0 , CLR_NONE );
  if (!t) Print ( "SELL О Ш Ы Б К А = " , GetLastError ());
 }

바이스톱과 셀스톱을 모두 현재 가격 보다 20핍 높게 설정하고 싶습니다.

 
ilunga :

숫자로 무엇을 얻을 수 있는지 확인

바이스톱과 셀스톱을 모두 현재 가격보다 20핍 높게 설정하고 싶습니다.

손으로 타자..

다음과 같은 코드에서:

pb=요청+20*포인트;

ps=입찰가-20*포인트;

Tb=요청+50*포인트;

Ts=입찰가+50*포인트1;

 
외부 정수 변수 = 0;
외부 정수 시프트 = 0.0000;
외부 int shift2 = 0.0000;
정수 초기화()
{
//----

//----
반환(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----

//----
반환(0);
}
//+----------------------------------------------- ------ --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- ------ --------------------+
정수 시작()
{
//----
SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),15,변수,0,MODE_SMA,PRICE_CLOSE,0), shift ,2),비스크,735,277,0,14);
SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),15,변수,0,MODE_SMA,PRICE_CLOSE,0), shift2,2 ),비스크,680,27 7,0,14);
//----
반환(0);
}
//+----------------------------------------------- --------------------+


무효 SetLabel(문자열 nm, 문자열 tx, 색상 cl, int xd, int yd, int cr=0, int fs=9) {
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL , 0, 0,0);
ObjectSetText(nm, tx, fs);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_XDISTANCE, xd);
ObjectSet(nm, OBJPROP_YDISTANCE, yd);
ObjectSet(nm, OBJPROP_CORNER, cr);
ObjectSet(nm, OBJPROP_FONTSIZE, fs);
}



더 말해 주세요.
마우스에서 수직 오프셋 up shift 및 down shift2 를 할당할 수 없습니다.
이 매개변수가 각 차트에 대해 별도로 설정되도록 합니다.
컴파일하는 동안 오류가 발생합니다
 
smartemiy :

손으로 타자..

다음과 같은 코드에서:

pb=요청+20*포인트;

ps=입찰가-20*포인트;

Tb=요청+50*포인트;

Ts=입찰가+50*포인트1;

TPb와 TP의 의미에서 Tb와 Ts? 또 한 방향으로 가는데 순서가 달라

모든 값을 인쇄하고 무슨 일이 일어나는지 확인

사유: