//+------------------------------------------------------------------+//| 2 Days.mq4 |//| hoz |//| |//+------------------------------------------------------------------+#property copyright "hoz"#property link ""externstring A1 = "Объем сделки. Если i_lots = 0, то считается в процентах" ;
externdouble i_lots = 0.1 ;
externstring A2 = "Управление рисками" ;
externdouble i_sl = 15 ,
i_tp = 10 ;
externint slippage,
price_b,
price_a;
externstring Z1 = "=== Прочие настройки ===" ;
externstring i_openOrderSound = "ok.wav" ;
externint i_magicNumber = 400021 ;
double firstBarClosed,
secondBarClosed;
// Идентификаторы типов сигналов#define SIGNAL_BUY 1// Сигнал на покупку#define SIGNAL_SELL - 1// Сигнал на продажу#define SIGNAL_NO 0// Нет сигнала#include <stderror.mqh>int init()
{
return ( 0 );
}
//+------------------------------------------------------------------+int deinit()
{
return ( 0 );
}
//+------------------------------------------------------------------+//+-------------------------------------------------------------------------------------+//| Получение рыночных данных |//+-------------------------------------------------------------------------------------+//FindOrders()//+-------------------------------------------------------------------------------------+//| Получение рыночных данных |//+-------------------------------------------------------------------------------------+void GetMarketInfo()
{
price_b = MarketInfo ( Symbol (),MODE_BID);
price_a = MarketInfo ( Symbol (),MODE_ASK);
}
//+-------------------------------------------------------------------------------------+//| Открытие позиций |//+-------------------------------------------------------------------------------------+bool Trade( int signal, double & priceForBuy, double & priceForSell)
{
// FindOrders();
priceForBuy = NormalizeDouble (priceForBuy, Digits );
priceForSell = NormalizeDouble (priceForSell, Digits );
if (! IsTesting ())
GetMarketInfo();
if (signal == SIGNAL_BUY)
if (! OrderSend ( Symbol (),OP_BUYLIMIT, i_lots,priceForBuy,slippage,i_sl,i_tp, "" ,i_magicNumber, 3 ))
return (false);
if (signal == SIGNAL_SELL)
if (! OrderSend ( Symbol (),OP_SELLLIMIT,i_lots,priceForSell,slippage,i_sl,i_tp, "" ,i_magicNumber, 3 ))
return (false);
return (true);
}
//+-------------------------------------------------------------------------------------+//| Получение цены входа в покупку или в продажу |//+-------------------------------------------------------------------------------------+double GetPriceToInput()
{
firstBarClosed = iClose ( Symbol (), 1440 , 2 );
secondBarClosed = iClose ( Symbol (), 1440 , 1 );
{
double deltaForSell = (firstBarClosed - secondBarClosed)/ 2 ;
double priceForSell = secondBarClosed - deltaForSell;
return (priceForSell);
}
{
double deltaForBuy = (secondBarClosed - firstBarClosed)/ 2 ;
double priceForBuy = secondBarClosed + deltaForBuy;
return (priceForBuy);
}
}
//+-------------------------------------------------------------------------------------+//| Генерация сигнала закрытия, покупки или продажи |//+-------------------------------------------------------------------------------------+int GetSignal()
{
if (firstBarClosed > secondBarClosed)
return (SIGNAL_BUY);
if (firstBarClosed < secondBarClosed)
return (SIGNAL_NO);
}
//+-------------------------------------------------------------------------------------+//| Функция Start |//+-------------------------------------------------------------------------------------+int start()
{
int signal = GetSignal();
if (signal != SIGNAL_NO)
if (!Trade(signal, priceForBuy, priceForSell))
return ( 0 );
return ( 0 );
}
질문은 그다지 어렵지 않습니다. Trade(int signal, double& priceForBuy, double& priceForSell)함수 에 형식 매개변수priceForBuy 및 priceForSell을 전달했습니다. 참조로 전달된 매개변수. 그렇게 된거야? 결국 기능은 전역이 아니라 지역적입니다.
컴파일하는 동안 오류가 발생했습니다.
'priceForBuy' - variable not defined E:\Insall'd soft's\Forex\Admiral Markets\experts\2 Days.mq4 (117, 25)
'priceForSell' - variable not defined E:\Insall'd soft's\Forex\Admiral Markets\experts\2 Days.mq4 (117, 38)
어디에서 오류가 발생합니까? 결국 GetPriceToInput() 함수에서 이러한 매개변수를 이미 정의했습니다.
질문은 별로 어렵지 않습니다. priceForBuy 및 priceForSell 형식 매개변수를 Trade(int signal, double& priceForBuy, double& priceForSell)함수에 전달했습니다. 참조로 전달된 매개변수. 그렇게 된거야? 결국 기능은 전역이 아니라 지역적입니다.
컴파일하는 동안 오류가 발생했습니다.
어디에서 오류가 발생합니까? 결국 GetPriceToInput() 함수에서 이러한 매개변수를 이미 정의했습니다.
priceForBuy 및 priceForSell 변수를 찾을 수 없음 - 컴파일러가 말합니다. 참조에 의한 변수 값 전달을 처리해야 합니다.
이런 전략입니다. 지금 바로 스크리닝할 수 있습니다. 아, 형이 왔는데 제 시간에 못 가요. 그러나 상황이 이상합니다.
이미 Diman이 되면 PERSONAL 캠프를 마스터하시겠습니까? :-)
정말 1년 동안 실생활에서 아직 반죽을 자르지 않았습니까? 같은 곳에서 STARTING 금액이 허약한 당신에게 할당되지 않은 것 같습니까? :-)
먼저 "특정 시간에 정확히 작동하는 한계 한계"라는 용어를 결정하십시오. "한계 한계가 작동합니다"는 무엇을 의미합니까??? 그리고 이 마법 같은 과정에 대해 더 많이 이야기할수록 실생활에서 더 쉽게 구현할 수 있습니다.
네, 제대로 표현하지 못했습니다. 일반적으로. 여기가 분명하면 연기는 가격에 의해서만 결정됩니다.
코드는 다음과 같습니다.
질문은 그다지 어렵지 않습니다. Trade(int signal, double& priceForBuy, double& priceForSell) 함수 에 형식 매개변수 priceForBuy 및 priceForSell을 전달했습니다. 참조로 전달된 매개변수. 그렇게 된거야? 결국 기능은 전역이 아니라 지역적입니다.
컴파일하는 동안 오류가 발생했습니다.
어디에서 오류가 발생합니까? 결국 GetPriceToInput() 함수에서 이러한 매개변수를 이미 정의했습니다.
그리고 프레첼 & 애프터 더블 (나는 솔직히 모르겠다) ?
이것은 참조로 매개변수를 전달하려는 집착입니다. :-)
이것은 참조로 매개변수를 전달하려는 집착입니다. :-)
다른 방법은? 같은 것을 100번 센다?
네, 제대로 표현하지 못했습니다. 일반적으로. 여기가 분명하면 연기는 가격에 의해서만 결정됩니다.
코드는 다음과 같습니다.
질문은 별로 어렵지 않습니다. priceForBuy 및 priceForSell 형식 매개변수를 Trade(int signal, double& priceForBuy, double& priceForSell) 함수에 전달했습니다. 참조로 전달된 매개변수. 그렇게 된거야? 결국 기능은 전역이 아니라 지역적입니다.
컴파일하는 동안 오류가 발생했습니다.
어디에서 오류가 발생합니까? 결국 GetPriceToInput() 함수에서 이러한 매개변수를 이미 정의했습니다.
다른 방법은? 같은 것을 100번 센다?
교과서에서와 같이 Expert Advisor의 신호 부분을 확인하면 만족할 것입니다!
이전에 스레드의 모든 링크를 제공했습니다 ...
다른 방법은? 같은 것을 100번 센다?
여기에 구체적인 예가 없습니다.
https://docs.mql4.com/en/basis/variables/formal
함수 매개변수가 나와 같은 상단에 작성됩니다. & 데이터 유형 뒤에 .
여기에 구체적인 예가 없습니다.
https://docs.mql4.com/en/basis/variables/formal
함수 매개변수가 나와 같은 상단에 작성됩니다. & 데이터 유형 뒤에.
다음과 같이 컴파일될 수 있습니다.
코드의 구조가 어떻게 든 "왼쪽"이지만 ...