MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 623

 
neverness :

나는 이미 가장 간단한 작업에 대해 설명했습니다.

메타에디터를 엽니다.

파일 -> 만들기 버튼을 클릭합니다.

팝업 필드에서 표시기를 선택합니다.

...

그러나 MQL 변환기는 그러한 코드를 어떤 식으로든 인식하지 못합니다.

약 20분 후에 답변해 드리겠습니다.

 
neverness :

정말 어린애들처럼 물을 더럽히는 당신은 무엇입니까?

예, 아무도 소란을 피우지 않습니다. 드디어 상황이 조금씩 풀리기 시작합니다. 메인 코드의 본문에 넣을 수 없는 스크립트 함수를 호출하는 것으로 나타났습니다.

MT는 제3자에 의한 침해로부터 보호되어야 하는 자금으로 작동하도록 설계되었음을 잊어서는 안됩니다. 따라서 언어의 한계가 대부분입니다.

네버니스 :

나는 이미 가장 간단한 작업에 대해 설명했습니다.

메타에디터를 엽니다.

파일 -> 만들기 버튼을 클릭합니다.

팝업 필드에서 표시기를 선택합니다.

그리고 OnCalculate() 표시기 필드에서 OnStart() 이벤트가 있는 모든 스크립트 개체를 포함합니다.

개인적으로 어떻게 해야할지 모르겠습니다. 예를 들면 다음과 같습니다.

int OnCalculate(const int rate_total,
const int prev_calculated,
const 날짜/시간 및 시간[],
const 이중 및 열기[],
const 더블 & 하이[],
const 더블 & 로우[],
const 이중 및 닫기[],
const long &tick_volume[],
const 긴 볼륨[],
const int &spread[])
{
//---
for(int i = 1; i < 100; i++)

{

if(열기[i] > 최대)

{

시작()

그리고 여기에서 우리는 관심 대상을 구성하기 위한 스크립트를 작성합니다. 예를 들어, 타원, 그래프의 문자 또는 기타

} //if(열기)

} //for(int i)
//--- 다음 호출을 위해 prev_calculated의 반환 값
반환(요금 합계);
} // OnCalculate

아마도 다음과 같이 보일 것입니다.

그러나 MQL 변환기는 그러한 코드를 어떤 식으로든 인식하지 못합니다.

다음과 같이 보여야 합니다.

 int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
for ( int i = 1 ; i < 100 ;i++)
      {
       if (open[i] > Max)
            {
            
           if ( int    ObjectFind (chart_id, /* идентификатор графика */ object_name /* имя объекта */) < 0)
             ObjectCreate (Здесь параметры функции согласно документации.
                         Например, эллипса, или буквы на графике, или еще чего-нибудь);
               
            }   //if(open)
      }   //for(int i)  
//--- return value of prev_calculated for next call
   return (rates_total);
  } // OnCalculate
 
Vitaly Muzichenko :

약 20분 후에 답변해 드리겠습니다.

비디오를 로드하는 데 40분 이상 시간이 걸렸습니다.


 //+------------------------------------------------------------------+
//|                                                          Set.mq5 |
//|                                                   Copyright 2018 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018"
#property version    "1.00"
#property indicator_chart_window
#property indicator_plots 0

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
 {
  EllipseCreate( 0 , "Ellipse" , 0 , 0 , 0 , 0 , 0 , 0 , 0 , clrRed , STYLE_SOLID , 1 , true , true );
//--- indicator buffers mapping
   return ( INIT_SUCCEEDED );

 }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
 ArraySetAsSeries (time, true );
 ArraySetAsSeries (open, true );
 // ....
   ObjectMove ( 0 , "Ellipse" , 0 ,time[ 1 ],open[ 5 ]);
   ObjectMove ( 0 , "Ellipse" , 1 ,time[ 10 ],open[ 15 ]);
   ObjectMove ( 0 , "Ellipse" , 2 ,time[ 20 ],open[ 25 ]);
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+

bool EllipseCreate( const long             chart_ID= 0 ,         // ID графика 
                   const string           name= "Ellipse" ,     // имя эллипса 
                   const int              sub_window= 0 ,       // номер подокна  
                   datetime               time1= 0 ,           // время первой точки 
                   double                 price1= 0 ,           // цена первой точки 
                   datetime               time2= 0 ,           // время второй точки 
                   double                 price2= 0 ,           // цена второй точки 
                   datetime               time3= 0 ,           // время третьей точки 
                   double                 price3= 0 ,           // цена третьей точки 
                   const color            clr= clrRed ,         // цвет эллипса 
                   const ENUM_LINE_STYLE style= STYLE_SOLID , // стиль линий эллипса 
                   const int              width= 1 ,           // толщина линий эллипса 
                   const bool             fill= false ,         // заливка эллипса цветом 
                   const bool             back= false ,         // на заднем плане 
                   const bool             selection= true ,     // выделить для перемещений 
                   const bool             hidden= true ,       // скрыт в списке объектов 
                   const long             z_order= 0 )         // приоритет на нажатие мышью 
  { 
//--- установим координаты точек привязки, если они не заданы 
   // ChangeEllipseEmptyPoints(time1,price1,time2,price2,time3,price3); 
//--- сбросим значение ошибки 
   ResetLastError (); 
//--- создадим эллипс по заданным координатам 
   if (! ObjectCreate (chart_ID,name, OBJ_ELLIPSE ,sub_window,time1,price1,time2,price2,time3,price3)) 
     { 
       Print ( __FUNCTION__ , 
             ": не удалось создать эллипс! Код ошибки = " , GetLastError ()); 
       return ( false ); 
     } 
//--- установим цвет эллипса 
   ObjectSetInteger (chart_ID,name, OBJPROP_COLOR ,clr); 
//--- установим стиль линий эллипса 
   ObjectSetInteger (chart_ID,name, OBJPROP_STYLE ,style); 
//--- установим толщину линий эллипса 
   ObjectSetInteger (chart_ID,name, OBJPROP_WIDTH ,width); 
//--- включим (true) или отключим (false) режим заливки эллипса 
   ObjectSetInteger (chart_ID,name, OBJPROP_FILL ,fill); 
//--- отобразим на переднем (false) или заднем (true) плане 
   ObjectSetInteger (chart_ID,name, OBJPROP_BACK ,back); 
//--- включим (true) или отключим (false) режим выделения эллипса для перемещений 
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект 
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection 
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект 
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTABLE ,selection); 
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTED ,selection); 
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов 
   ObjectSetInteger (chart_ID,name, OBJPROP_HIDDEN ,hidden); 
//--- установим приоритет на получение события нажатия мыши на графике 
   ObjectSetInteger (chart_ID,name, OBJPROP_ZORDER ,z_order); 
//--- успешное выполнение 
   return ( true ); 
  } 
파일:
Set.mq5  10 kb
 
Vitaly Muzichenko :

비디오를 로드하는 데 40분 이상 시간이 걸렸습니다.

나는 또한 때때로 포럼의 섹션을 혼동하고 mql5의 mql4에 대한 질문에 대한 답변을 작성합니다.

원칙적으로 이 경우 파일 확장자를 제외하고는 아무것도 변경되지 않지만 mql4에서는 불필요합니다.

 ArraySetAsSeries (time, true );
 ArraySetAsSeries (open, true );

심지어 완전히 불필요하고 쓸모가 없습니다.

 
neverness :

당신은 정말로 어린아이처럼 물을 더럽히는 것이 무엇입니까?

MetaEditor로 이동하여 File->New... 명령을 입력하십시오.

결과적으로 다른 공백이 있는 양식이 나타납니다.

특히 다음은 공백이 됩니다.

- 조언자

- 사용자 지정 표시기

- 스크립트

- 도서관 등

처음 세 항목인 Expert Advisor, Custom Indicator 및 Script에 관심이 있습니다.

다음 공백을 비교해 보겠습니다.

EA에는 다음과 같은 이벤트가 있습니다.

-OnInit(), OnDeinit(), OnTick(), OnTimer, OnChartEvent() ... 그게 다야, 더 이상.

스크립트에는 다음과 같은 이벤트가 있습니다.

- OnStart() ... 그게 다야, 더 이상.

표시기에는 다음과 같은 이벤트가 있습니다.

- OnInit(), OnCalculate(), OnTimer, OnChartEvent() ... 그게 전부입니다. 더 이상은 아닙니다.

여기에서 이러한 객체 간의 통신 방법에 대한 질문은 매우 자연스럽습니다.

MQL에서는 이들 사이에 연결이 없고 있을 수 없는 것으로 나타났습니다. 이러한 개체 간의 데이터 흐름이 완전히 분리되어 있고 둘 사이에 연결이 없기 때문입니다.

게다가 MQL을 만든 사람들이 이 사실을 우리에게 '좋은 것'으로 준다는 사실에 놀랐다.

그리고 예를 들어 C ++의 프레임워크 내에서 기본 번역기, JavaScript 또는 기타를 안전하게 호출할 수 있고 예를 들어 Android 프로그래밍 환경으로 이동할 수 있다면

그런 다음 표시기 환경이 OnStart() 명령을 허용하지 않기 때문에 MQL의 프레임워크 내에서 "표시기" 환경에서 소위 "스크립트"를 생성할 기회조차 없습니다.

이게 뭔 개소리야???

그리고 MQL에는 그러한 괴물들이 충분히 있습니다.

그들은 모든 턴에 있습니다.

MQL에 대한 설명을 읽었습니다. 그리고 더 이상 할 일이 없기 때문에 놀랐습니다.

그리고 동시에 MQL의 창시자들은 MQL이 C++의 상속자임을 큰 소리로 선언합니다.

물론 죄송하지만 MQL의 제작자에게 묻고 싶습니다. - 후계자는 무엇입니까? - 기형?


나는 무의식적으로 MQL을 잘 알려진 1C 프로그래밍 환경과 비교합니다. 그들은 또한 C++의 상속자라고 주장합니다.

그러나 모든 것이 훨씬 더 적절하게 이루어집니다.

그리고 그래픽 개체, 모듈 간의 통신 등.

MQL에서는 어떻습니까?

내장 클래스도 없고 스레드 관련 개체도 없고... 전혀 없습니다.

그리고 나는 아직 터미널의 수학적 쉘에 대해 아무 말도 하지 않았다!!!

이것은 일반적으로 놀라움에 대한 별도의 주제입니다!

도움말 을 조금 읽고, 갖고 있지 않다고 말하는 모든 것을 찾아보고 , 안전보장이사회의 기본 제공 클래스에 대해 읽고, 정중하게 도움을 요청하는 방법(당신이 도움을 요청함)을 배우고, 배우지 말자 당신을 도우려는 사람들에게 무례하게 굴다(참고 - 무관심하게) ...

일반적으로 조롱, 무례함, 구걸 행위로 하루 동안 금지됩니다(모든 진술을 증명하기 위해 코드를 한 줄도 표시하지 않았지만 귀하의 질문과 진술에 응답한 사람들에게 귀하의 필요에 맞는 작업 코드로 - 여기에서는 그렇지 않습니다 - 여기에서는 도움이 되지만 귀하를 위해 하지는 않습니다. 참고로 - 가장 간단한 코드)

공격하지 마십시오-아무것도 가지고 우리에게 오는 사람은 무엇을 이해하지 못하고 죽을 것입니다.

특히 내가 당신에게 열을 낮추라고 경고했기 때문에:

 

Macos에 mt4를 설치하는 방법 도와주세요!

 

가상 머신에만 있습니다. 나는 비싸지 만 편리하고 신뢰할 수있는 평행선을 가지고 있습니다.

https://www.parallels.com/en/products/desktop/

Запуск Windows на Mac — виртуальная машина Parallels Desktop 14 для Mac
  • www.parallels.com
Можно запустить Windows параллельно с macOS® (перезагрузка не требуется) на компьютерах MacBook®, MacBook Pro®, iMac®, iMac Pro®, Mac mini® или Mac Pro®. Предоставляйте общий доступ к файлам и папкам, копируйте и вставляйте текст и изображения, перетаскивайте файлы между приложениями Mac и Windows. Удобная настройка Parallels Desktop...
 

도와주세요. 질문은 다음과 같습니다.

1. 프로그램은 테스트 모드에서 매수 또는 매도에 대한 손절매를 설정하지 않습니다. 그러나 보류 중인 패스에 대한 주문 수정.

2. 실시간 계정으로 실행되지 않습니다.

도와주세요, 제발.

그리고 프로그램을 작성할 때 범한 모든 실수를 지적해 주시기 바랍니다.

미리 감사드립니다.

프로그램 코드:

.input 정수 백분율=50;

입력 정수 MAGICNUMBER=413;

//장기 차트에 대한 지표 및 오실레이터 상수의 매개변수

입력 정수 Signal_Period_long_term=6;

입력 int Fast_EMA_Period_long_term=12;

입력 int Slow_EMA_Period_long_term=24;

//단기 차트에 대한 지표 및 오실레이터 상수의 매개변수

입력 int Stochastic_Kperiod_short_term=5;

입력 int Stochastic_Dperiod_short_term=3;

입력 int Stochastic_slowing_short_term=3;

ENUM_TIMEFRAMES PERIODs_short_term=PERIOD_M5 입력;

ENUM_TIMEFRAMES PERIODs_long_term=PERIOD_H1 입력;

//------------------------------------------------ ------------------------------------------

//공통 변수와 그 유형

static datetime New_Time;// 현재 막대의 시간

정적 날짜 시간 Time_Local;

이중 Margin_Percent; //주문을 여는 데 사용되는 수단

double lot; // 총 로트 수 결정

이중 lot_Volume;

//장기 차트의 변수 및 유형

double MacdCurrent_long_term;//현재 막대의 메인 라인의 MACD 매개변수

double MacdPrevious_long_term;//이전 막대의 메인 라인의 MACD 매개변수

이중 SignalCurrent_long_term;

//단기 차트의 변수 및 유형

double Stochastic_Current_short_term_main;//5분 차트에서 현재 막대의 확률 매개변수

double Stochastic_Previous_short_term_main;//5분 차트에서 이전 막대의 확률 매개변수

double Stochastic_Current_short_term_signal;//5분 차트에서 현재 막대의 확률 매개변수

double Stochastic_Previous_short_term_signal;//5분 차트에서 이전 막대의 확률 매개변수

이중 StopLoss_BUY;

이중 StopLoss_SELL;

두 배 Price_BUY;

두 배 Price_SELL;

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

//| 전문가 초기화 기능 |

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

int OnInit()

{

//---


//---

반환(INIT_SUCCESSED);

}

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

//| 전문적인 초기화 해제 기능 |

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

무효 OnDeinit(const int 이유)

{

//---


}

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

//| 전문가 틱 기능 |

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

무효 OnTick()

{

int 티켓, cnt;

int total=OrdersTotal();// 주문 수 결정

부울 New_Bar=거짓; // 새 막대 플래그


//장기 차트의 변수 값 결정

MacdCurrent_long_term=iMACD(NULL,PERIODs_long_term,Fast_EMA_Period_long_term,Slow_EMA_Period_long_term,Signal_Period_long_term,PRICE_TYPICAL,MODE_MAIN,1);

MacdPrevious_long_term=iMACD(NULL,PERIODs_long_term,Fast_EMA_Period_long_term,Slow_EMA_Period_long_term,Signal_Period_long_term,PRICE_TYPICAL,MODE_MAIN,2);

SignalCurrent_long_term=iMACD(NULL,PERIODs_long_term,Fast_EMA_Period_long_term,Slow_EMA_Period_long_term,Signal_Period_long_term,PRICE_TYPICAL,MODE_SIGNAL,1);

//단기 차트의 변수 값 결정

Stochastic_Current_short_term_main=iStochastic(NULL,PERIODs_short_term,Stochastic_Kperiod_short_term,Stochastic_Dperiod_short_term,Stochastic_slowing_short_term,MODE_SMA,0,MODE_MAIN,1);

Stochastic_Previous_short_term_main=iStochastic(NULL,PERIODs_short_term,Stochastic_Kperiod_short_term,Stochastic_Dperiod_short_term,Stochastic_slowing_short_term,MODE_SMA,0,MODE_MAIN,2);

Stochastic_Current_short_term_signal=iStochastic(NULL,PERIODs_short_term,Stochastic_Kperiod_short_term,Stochastic_Dperiod_short_term,Stochastic_slowing_short_term,MODE_SMA,0,MODE_SIGNAL,1);

Stochastic_Previous_short_term_signal=iStochastic(NULL,PERIODs_short_term,Stochastic_Kperiod_short_term,Stochastic_Dperiod_short_term,Stochastic_slowing_short_term,MODE_SMA,0,MODE_SIGNAL,2);

//공유 변수 정의

Price_BUY=iHigh(NULL,PERIODs_short_term,1)+MarketInfo(NULL,MODE_STOPLEVEL)*MarketInfo(NULL,MODE_POINT);

Price_SELL=iLow(NULL,PERIODs_short_term,1)-MarketInfo(NULL,MODE_STOPLEVEL)*MarketInfo(NULL,MODE_POINT);

StopLoss_BUY=iLow(NULL,PERIODs_short_term,1)-MarketInfo(NULL,MODE_STOPLEVEL)*MarketInfo(NULL,MODE_POINT);

StopLoss_SELL=iHigh(NULL,PERIODs_short_term,1)+MarketInfo(NULL,MODE_STOPLEVEL)*MarketInfo(NULL,MODE_POINT);

Margin_Percent=AccountFreeMargin()*백분율/100;

랏=NormalizeDouble(Margin_Percent/MarketInfo(Symbol(),MODE_MARGINREQUIRED),2);

lot_Volume=NormalizeDouble(MathFloor(Lots)+MarketInfo(Symbol(),MODE_LOTSTEP),2);

//------------------------------------------------ -------------------------------------------------- ----------------------

//----- 새 막대 정의------------------------------------------- - -------------------------------------------------- -

New_Time=TimeCurrent();

Print("시간=",TimeCurrent());

Print("바 여는 시간 =",iTime(NULL,PERIODs_short_term,0));

if(iTime(NULL,PERIODs_short_term,0)==New_Time) // 시간 비교

{

if(iVolume(NULL,PERIODs_short_term,0)<=2) //볼륨 비교

Print("바 볼륨=",볼륨[0]);

if(iBarShift(NULL,PERIODs_short_term,TimeCurrent())==0)//바 인덱스 확인

Print("막대 번호=",iBarShift(NULL,PERIODs_short_term,TimeCurrent()));

New_Bar=참; // 새 막대가 있습니다.

Print("새 막대");

}

else if(New_Bar==false) // 막대가 새것이 아닌 경우..

{

Print("바는 새로운 것이 아닙니다.");

반품;

}

//---최소 로트를 열 수 있는 자금의 가용성 확인

if(Margin_Percent<MarketInfo(Symbol(),MODE_MARGINREQUIRED)*(MarketInfo(Symbol(),MODE_MINLOT)))

{

Print("자금이 부족합니다. 여유자금 = ",AccountFreeMargin());

반품;

}

//---로트 수 결정

if(Lots>Lots_Volume)

{

lot=NormalizeDouble(Lots_Volume,2);

Print("랏수 : ",랏);

}

else if(Lots<Lots_Volume)

{

lot=NormalizeDouble(MathFloor(Lots),2);

Print("랏수 : ",랏);

}

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

//| 주문 수가 0일 때 주문을 여는 조건 |

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

if(총<1)

{


if(MacdCurrent_long_term<0 && MacdCurrent_long_term>SignalCurrent_long_term)

Print("구매 조건이 true입니다.");

{

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

//| 롱포지션만 오픈하기 위한 조건 BUY |

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

if(Stochastic_Current_short_term_main<Stochastic_Current_short_term_signal && Stochastic_Previous_short_term_main>=Stochastic_Previous_short_term_signal)

{

ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,Price_BUY,3,0,0,NULL,MAGICNUMBER,0,Blue);

if(티켓>0)//오픈 포지션 확인

{

if(OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES))

{

Print("구매 주문이 열려 있습니다 : ",OrderOpenPrice());

반품;

}

else Print("구매 주문 열기 오류: ",GetLastError());

반품;

}

}

}

if(MacdCurrent_long_term>0 && MacdCurrent_long_term<SignalCurrent_long_term)

Print("판매 조건이 true입니다.");

{

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

//| 숏포지션만 개설하기 위한 조건 SELL |

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

if(Stochastic_Current_short_term_main>Stochastic_Current_short_term_signal && Stochastic_Previous_short_term_main<=Stochastic_Previous_short_term_signal)

{

ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,Price_SELL,3,0,0,NULL,MAGICNUMBER,0,Green);

if(티켓>0)//오픈 포지션 확인

{

if(OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES))

{

Print("판매 주문이 열려 있습니다 : ",OrderOpenPrice());

반품;

}

else Print("판매 주문 열기 오류: ",GetLastError());

반품;

}

}

}

}


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

//| 주문 수정 조건 |

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


for(cnt=0;cnt<전체;cnt++)

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

//| |

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

{

if(!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))

계속하다;

if(OrderMagicNumber()==MAGICNUMBER && // 주문 매직 넘버 확인

OrderSymbol()==Symbol()) // 주문 기호 확인

{

//--- 롱포지션 오픈

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

{

if(OrderOpenPrice()<Price_BUY && Ask<Price_BUY)

{

if(OrderModify(OrderTicket(),Price_BUY,0,0,0,Blue))

Print("Price Price_BUY 주문이 성공적으로 수정되었습니다.");

else Print("BUYStop 주문을 수정하는 동안 오류가 발생했습니다. Error code=",GetLastError());

반품;

}

else Print("수정 가격이 주문 가격보다 높습니다.");

반품;

}

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

{

if(OrderOpenPrice()<Price_SELL && Bid>Price_SELL)

{

if(OrderModify(OrderTicket(),Price_SELL,0,0,0,Green))

Print("Price Price_SELL 주문이 성공적으로 수정되었습니다.");

else Print("SELLStop 주문을 수정하는 동안 오류가 발생했습니다. Error code=",GetLastError());

반품;

}

}

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

{

if(OrderStopLoss()<StopLoss_BUY && StopLoss_BUY<문의)

{

if(OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss_BUY,0,0,Blue))

Print("Price Price_BUY 주문이 성공적으로 수정되었습니다.");

else Print("구매 주문을 수정하는 동안 오류가 발생했습니다. 오류 코드=",GetLastError());

반품;

}

}

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

{

if(OrderStopLoss()>StopLoss_SELL && StopLoss_SELL>입찰가)

{

if(OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss_SELL,0,0,녹색))

Print("Price Price_SELL 주문이 성공적으로 수정되었습니다.");

else Print("판매 주문을 수정하는 동안 오류가 발생했습니다. 오류 코드=",GetLastError());

반품;

}

}

}

}


}

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

 

표시기의 오류를 수정하는 데 도움이 됩니다. 시간의 마지막 촛불에 있을 때 하루의 고가와 저가를 그리지 않습니다.

https://prnt.sc/kut6xo

https://prnt.sc/kut79b

Скриншот
Скриншот
  • prnt.sc
Снято с помощью Lightshot
파일:
 
Michail_David :

도와주세요. 질문은 다음과 같습니다.

1. 프로그램은 테스트 모드에서 매수 또는 매도에 대한 손절매를 설정하지 않습니다. 그러나 보류 중인 패스에 대한 주문 수정.

2. 실시간 계정으로 실행되지 않습니다.


이와 같이

 if ( OrderType ()== OP_SELL )

           {

             if ( OrderStopLoss () != StopLoss_SELL && StopLoss_SELL> Bid )

AND 코드를 수정하고 올바르게 삽입합니다(Alt+S).