//--- открываем/создаем базу данных в общей папке терминаловint database= DatabaseOpen (filename+ ".sqlite" , DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE | DATABASE_OPEN_COMMON );
if (database== INVALID_HANDLE )
{
Print ( "SaveStats: " , filename, " открываем/создаем базу данных в общей папке терминалов " , GetLastError ());
return ;
}
//--- заблокируем базу данных перед выполнением транзакцийDatabaseTransactionBegin (database);
int request= DatabasePrepare (database, "SELECT COUNT(*) FROM POSITION" );
int id= DatabaseRead (request);
데이터베이스에서 요청을 확인하면 그대로 반환됩니다.
정확히
int id= DatabaseRead (request);
데이터베이스는 bool이고 id는 int입니다.
요청 결과를 꺼내는 방법???
모든 것이 해결되었습니다. 추가 SQL 클래스를 만들었습니다.
//--- заблокируем базу данных перед выполнением транзакцийDatabaseTransactionBegin (database);
int request= DatabasePrepare (database, "SELECT COUNT(*) FROM POSITION" );
DatabaseReadBind (request,sql);
자체 시간이 있는 현재 막대의 인덱스가 있는 경우 이 조합은 절대 변경되지 않을 것이라고 가정합니다.
아니면 스와핑 히스토리의 결과로 이 인덱스가 일부 히스토리 바에 할당되고 현재 바가 스왑된 바의 수만큼 더 큰 새로운 인덱스를 갖게 될 가능성이 있습니까?
다른 말로 하면 동일합니다.
히스토리가 완전히 업로드되고 해당 매개변수가 미래에 변경되지 않은 후에만 현재 바(인덱스, 가격 및 시간)를 사용할 수 있다는 것을 이해하는 것이 맞습니까?
MySQL 테이블 테이블의 행 수를 얻는 방법을 알려주십시오.
오류를 반환합니다.
작업은 마지막 ID를 얻는 것입니다.
나는 또한이 방법을 시도하지만 행 수를 얻을 수 없습니다
무슨 일이야, 왜 요청에서 값을 얻을 수 없습니까?
데이터베이스에서 요청을 확인하면 그대로 반환됩니다.
정확히
int id= DatabaseRead (request);
데이터베이스는 bool이고 id는 int입니다.
요청 결과를 꺼내는 방법???
모든 것이 해결되었습니다. 추가 SQL 클래스를 만들었습니다.
표시기가 언로드 된 순간부터 DeInit 호출까지 몇 초가 걸립니다.
일시 중지가 발생하는 이유는 무엇이며 피할 수 있습니까?
문서에서 가져온 이 블록을 사용합니다(tp 및 sl 추가).
//+------------------------------------------------------------------+
void Open_order_BUY()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.sl =bid-SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =ask+TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
//+------------------------------------------------------------------+
void Open_order_SELL()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.2 лот
request.type =ORDER_TYPE_SELL; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_BID); // цена для открытия
request.sl =ask+SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =bid-TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
각 틱마다 주문이 열립니다. 하나만 열리도록 수정하려면 어떻게 해야 합니까?
문서에서 가져온 이 블록을 사용합니다(tp 및 sl 추가).
//+------------------------------------------------------------------+
void Open_order_BUY()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.sl =bid-SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =ask+TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
//+------------------------------------------------------------------+
void Open_order_SELL()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.2 лот
request.type =ORDER_TYPE_SELL; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_BID); // цена для открытия
request.sl =ask+SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =bid-TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
결정됐다.
선을 오른쪽으로 확장하는 방법은 무엇입니까? 현재 막대 너머.
시간과 가격의 좌표가 있습니다. 가격은 명확하지만 시간을 설정하는 방법(iTime(Symbol(), PERIOD_CURRENT, 0)을 시도하지만 해당 인덱스는 0입니다)
선을 오른쪽으로 확장하는 방법은 무엇입니까? 현재 막대 너머.
시간과 가격의 좌표가 있습니다. 가격은 명확하지만 시간을 설정하는 방법(iTime(Symbol(), PERIOD_CURRENT, 0)을 시도하지만 해당 인덱스는 0입니다)
안녕하세요.
다음과 같은 질문:
DRAW_FILLING 그리기 스타일로 영역을 그리는 표시기를 작성하고 있습니다. 차트에는 그려진 영역 외에도 많은 이동 평균을 포함한 몇 가지 다른 지표가 있습니다. 그린 영역이 중첩되면 다른 표시기의 선이 색이 크게 바뀝니다.
질문: 색상이 겹치지 않고 다른 표시기의 선 색상을 변경하지 않는 방식으로 MT5에서 영역을 그릴 수 있습니까?
추신: 표시기 버퍼의 모든 표시 속성( PlotIndexSetInteger 와 같은 메서드)을 찾아보았지만 비슷한 것은 없습니다.
추신.2. 첨부된 것은 MT5의 스크린샷입니다.
안녕하세요.
다음과 같은 질문:
DRAW_FILLING 그리기 스타일로 영역을 그리는 표시기를 작성하고 있습니다. 차트에는 그려진 영역 외에도 많은 이동 평균을 포함한 몇 가지 다른 지표가 있습니다. 그린 영역이 중첩되면 다른 표시기의 선이 색이 크게 바뀝니다.
질문: 색상이 겹치지 않고 다른 표시기의 선 색상을 변경하지 않는 방식으로 MT5에서 영역을 그릴 수 있습니까?
추신: 표시기 버퍼의 모든 표시 속성( PlotIndexSetInteger 와 같은 메서드)을 찾아보았지만 비슷한 것은 없습니다.
추신.2. 첨부된 것은 MT5의 스크린샷입니다.
그것은 모두 오버레이의 순서에 달려 있습니다. 마지막 사람이 맨 위에 있습니다.
먼저 DRAW_FILLING 으로 버퍼를 정의하십시오.