초보자의 질문 MQL4 MT4 MetaTrader 4 - 페이지 204

 

안녕하세요.

질문이 하나 있습니다. Martin에 대한 조언 을 작성했습니다. 주문을 수정하고 TakeProfit을 넣는 순간 하늘로 날아갑니다. 그리고 이것은 실제 생활에서만 발생합니다. 테스터에서는 모든 것이 정상이고 데모에서는 모든 것이 정상입니다. 뭐가 웃긴지 이해가 안됩니다.

//+----------------------------------------------- --------------------+

이중 BuyAverange=0, SellAverange=0, SellPrice=0, BuyPrice=0, BuyLot=0,SellLot=0;

for(int i = OrdersTotal()-1; i>=0; i--)

if(주문선택(i,SELECT_BY_POS))

if(OrderSymbol()==Symbol())

if(OrderMagicNumber()==매직)

{

if (주문유형()==OP_BUY)

{

BuyPrice+=OrderOpenPrice()*OrderLots();

BuyLot+=OrderLots();

}

if (주문 유형()==OP_SELL)

{

SellPrice+=OrderOpenPrice()*OrderLots();

SellLot+=OrderLots();

}

}

if(b>1&&BuyLot>0)

BuyAverange=NormalizeDouble(BuyPrice/BuyLot+Profit*Point(),Digits());

if(s>1&&SellLot>0)

SellAverange=NormalizeDouble(SellPrice/SellLot-Profit*Point(),Digits());

//+----------------------------------------------- ----------

for(int i = OrdersTotal()-1; i>=0; i--)

if(주문선택(i,SELECT_BY_POS))

if(OrderSymbol()==Symbol())

if(OrderMagicNumber()==매직)

{

if (주문유형()==OP_BUY)

{

if(b==1)

if(OrderTakeProfit()==0)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(OrderOpenPrice()+TakeProfit*Point(),Digits()),0,clrGreen)==false)

Print("오류 N",GetLastError());

만약 (b>1)

if(OrderTakeProfit()!=구매 평균)

if(Ask<BuyAverrange)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(BuyAverange,Digits()),0,clrGreen)==false)

Print("오류 N",GetLastError());

}

if (주문 유형()==OP_SELL)

{

if(s==1)

if(OrderTakeProfit()==0)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(OrderOpenPrice()-TakeProfit*Point(),Digits()),0,clrGreen)==false)

Print("오류 N",GetLastError());

만약 (s>1)

if(OrderTakeProfit()!=SellAverange)

if(입찰가>평균 매도)

if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(SellAverange,Digits()),0,clrGreen)==false)

Print("오류 N",GetLastError());

}

}

 

동료 - 다른 곳을 몰라서 여기에 글을 쓰기로 했습니다. 수정하십시오 - MT 4에서 - 하나의 기본 프로필을 유지하면서 - 기본값 - 여러 탭에서 여러 로봇으로 작업할 때 - 일반적으로 이 주제는 유로벅스, 파운드벅 등 아래에 있습니다. - 터미널을 다시 시작할 때 - 기본 프로필을 로드할 때 혼합되고 기본 프로필을 로드할 때도 혼합됩니다. 매우 불편합니다. 시퀀스를 수동으로 구문 분석해야 합니다.


고칠 수 있습니까?

 
#property strict
#property copyright "Alex Kolodin"
#property link "www."
#property version "1.00"
#property show_inputs

input color buy =clrGreen;
input color sell =clrCoral;
input int _width=3;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int i,k=OrdersHistoryTotal(), r=-1;
   string sy=Symbol();
   for(i=0; i<k; i++)
   {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
       if(OrderType()==OP_BUY)
        {
         if(OrderSymbol()==sy)
         {
          TrendCreate(0,"Trendline"+(string)OrderTicket(),0,
                        OrderOpenTime(),
                        OrderOpenPrice(),
                        OrderCloseTime(),
                        OrderClosePrice(),
                        buy,
                        STYLE_SOLID,
                        _width
                        );
        }    
         if(OrderType()==OP_SELL)
              {
               TrendCreate(0,"TrendLine"+(string)OrderTicket(),0,
                        OrderOpenPrice(),
                        OrderOpenTime(),
                        OrderCloseTime(),
                        OrderClosePrice(),
                        sell,            
                        STYLE_SOLID,
                        _width
                        );
              }
          }
         } 
 
 
      }
    }
    
//+------------------------------------------------------------------+
bool TrendCreate(const long chart_ID=0,
const string namename="trendLine",
const int sub_window=0,
datetime time1=0,
double price1=0,
datetime time2=0,

double price2=0,
const color clr=clrRed,
const ENUM_LINE_STYLE style=STYLE_SOLID,
const int width=1,
const bool back=false,
const bool selection=false, 
const bool ray_right=false,
const bool hidden=true,
const long z_order=0)
{

ResetLastError();
 if(!ObjectCreate(chart_ID,namename,OBJ_ARROW,sub_window,time1,price1,time2,price2))
     {
      Print(__FUNCTION__,
            ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
      return(false);
     }
     ObjectSetInteger(chart_ID,namename,OBJPROP_COLOR,clr);
     ObjectSetInteger(chart_ID,namename,OBJPROP_STYLE,style);
     ObjectSetInteger(chart_ID,namename,OBJPROP_WIDTH,width);
     ObjectSetInteger(chart_ID,namename,OBJPROP_BACK,back);
     ObjectSetInteger(chart_ID,namename,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,namename,OBJPROP_SELECTED,selection);
   ObjectSetInteger(chart_ID,namename,OBJPROP_RAY_RIGHT,ray_right);
   ObjectSetInteger(chart_ID,namename,OBJPROP_HIDDEN,hidden);
   ObjectSetInteger(chart_ID,namename,OBJPROP_ZORDER,z_order);
   return(true);

//
     }Здраствуй, читающий уважаемый(АЯ), вот такой код по идее выдаст трендовую линию по двум точкам. Компилируется, а результата нет. Помогите, спасибо.
 

안녕하세요!

mt4의 차트가 mt5의 차트와 다른 이유는 무엇입니까? 그리고 가능하다면 mt5 차트를 mt4로 어떻게 옮기나요? (그냥 내 브로커가 mt5와 같은 가격 데이터를 사용하지만 내가 가장 좋아하는 지표는 모두 mt4에 있습니다)

 

이메일이 작동하지 않는 이유를 말씀해 주시겠습니까?


 
Vitaly Muzichenko :

이메일이 작동하지 않는 이유를 말씀해 주시겠습니까?


누구와 누구와 달라야 할까요?

 
Сергей Таболин :

누구와 누구와 달라야 할까요?

예 이미 시도했지만 아무 것도 도움이되지 않습니다.

 
Vitaly Muzichenko :

예, 이미 시도했지만 아무 것도 도움이되지 않습니다.

이제 모든 메일러는 타사 응용 프로그램에 대해 별도의 암호를 생성하도록 요구합니다. 메일러의 도움말을 읽으십시오. 아마도 별도의 비밀번호를 생성해야 할 것입니다.


또한 다음과 같이 SMTP 서버의 포트를 정확하게 등록해야 합니다.

smtp.ukr.net: 465
 
Vladimir Karputov :

이제 모든 메일러는 타사 응용 프로그램에 대해 별도의 암호를 생성하도록 요구합니다. 메일러의 도움말을 읽으십시오. 아마도 별도의 비밀번호를 생성해야 할 것입니다.

또한 다음과 같이 SMTP 서버의 포트를 정확하게 등록해야 합니다.

똑같이 시도했습니다 - 작동하지 않았습니다.

규정된 포트: smtp.ukr.net:465


 
일반적으로 메일러가 하나 이상 있는 사람에게 작동합니까?
사유: