우리가 낚시하러 왔다가 잡은 물고기를 갈고리에 걸고 그물로 낚싯대에 떠다니니 잡은 물고기를 접을 그릇이 필요하시더라
집에 가자..... 계속 할까?
그리고 식료품 저장실(OnInit)에서 낚시에 필요한 모든 것을 즉시 가져오고, 뛰어다니지 않고 낚시를 가고, 집에 돌아와 모든 것을 식료품 저장실과 냉장고에 넣을 수 있습니다(OnDeinit).
여기 포럼에서 이에 대해 알 수 있습니다 . 때때로 당신은 그들이 당신에게 말하는 것을 듣고 경청해야 합니다.
그리고 그들은 질문을 하고 답을 얻었습니다. 그들은 쓰레기라고 말했습니다. 그리고 당신은 생각하는 대로 행동합니다.
먼저 질문에 대해 생각하고 주변에 물어본 다음 편집자를 맡을 필요가 있습니다.
프로그래밍에서 가장 쉬운 것이 코드를 입력하는 것이라는 사실을 알고 계십니까? 그리고 개발의 가장 큰 부분은 논리에 대한 생각에 있습니다.
말도 안되는 비유네요. 이 경우 모든 변수, 클래스 객체 등이 됩니다. 필요에 따라 생성하거나 그래프로 만들 수 있는 대신 전역으로 만듭니다. 물체는 다른 무엇입니까(확실히 낚싯대나 그물이 아닙니다 :))? 따라서 내 접근 방식은 매우 합리적이고 정당합니다. mql 또는 메타 트레이더가 망쳐 놓는 것뿐입니다.
원칙적으로 열린 주문은 일반적으로 이미 열린 바의 틱에서 닫힙니다. MakarFX와 Artyom이 올바르게 인식했습니다. 따라서 다음과 같이 하는 것이 옳습니다.
voidOnTick ()
{
datetime cTime;
staticdatetime time = 0 ;
int nOrders;
cTime = iTime ( NULL , PERIOD_CURRENT , 0 );
nOrders = CountOrders();
if (time != cTime && nOrders == 0 )
time = cTime;
elsereturn ;
// Получим значение индикатора
dMA = iMA ( Symbol (), 0 ,PeriodMA, MovingShift, MODE_SMA , PRICE_CLOSE , 0 ); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.// Если нет открытых ордеров, то входим в условиеif (nOrders == 0 ) // теперь это условие можно убрать
{
// Если появился сигнал на покупку, то откроем ордер на покупкуif (bSignalBuy() == true )
vOrderOpenBuy();
// Если появился сигнал на продажу, то откроем ордер на продажуif (bSignalSell() == true )
vOrderOpenSell();
}
}
기본적으로 열려 있는 주문은 일반적으로 이미 열려 있는 바의 눈금에서 닫힙니다. MakarFX와 Artyom이 올바르게 인식했습니다. 따라서 다음과 같이 하는 것이 옳습니다.
Artem이 맞습니다, 그래야 합니다
//+-----------------------------------------------------------------------------------------------+voidOnTick ()
{
// Получим значение индикатора
dMA = iMA ( Symbol (), 0 ,PeriodMA, MovingShift, MODE_SMA , PRICE_CLOSE , 0 ); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.// Если нет открытых ордеров и появился сигнал на покупку, то откроем ордер на покупкуif (CountOrders()== 0 &&bSignalBuy())
{
vOrderOpenBuy();
}
// Если нет открытых ордеров и появился сигнал на продажу, то откроем ордер на продажуif (CountOrders()== 0 &&bSignalSell())
{
vOrderOpenSell();
}
}
코드에서 하나의 열린 위치에서 다른 위치는 반대 신호에서 열리지 않습니다. 즉, 먼저 시그널이 도착하면 반대 포지션이 있는지 확인하고 닫아야 합니다.
그러나 반복합니다. 이 모든 것이 전략을 개선할 가능성을 크게 제한합니다.
주문의 유무에 묶이는 것에서 벗어날 필요가 있습니다.
아니요, 유형별 주문 수와 위치를 파악하는 것이 정확하고 필요합니다. 그러나 명령이 없을 때만 신호에 의존하는 것은 그런 것입니다 ...
일반적으로 주문과 포지션을 카운팅하는 기능(주문과 포지션의 개수가 변경될 때 구조를 채우는 기능), 포지션을 오픈/클로징하는 기능, 주문을 위한 기능 및 시그널 기능을 갖는 것이 맞습니다. 다양한 트롤의 기능과 지표에서 데이터 수신. 플러스 - 위치 데이터(열림 또는 닫힘)를 모든 값과 비교할 수 있습니다.
좋은. 간단한 단어로 러시아어로 시도해 보겠습니다.
당신은 낚시를 가고 있습니다.
그리고 식료품 저장실(OnInit)에서 낚시에 필요한 모든 것을 즉시 가져오고, 뛰어다니지 않고 낚시를 가고, 집에 돌아와 모든 것을 식료품 저장실과 냉장고에 넣을 수 있습니다(OnDeinit).
여기 포럼에서 이에 대해 알 수 있습니다 . 때때로 당신은 그들이 당신에게 말하는 것을 듣고 경청해야 합니다.
그리고 그들은 질문을 하고 답을 얻었습니다. 그들은 쓰레기라고 말했습니다. 그리고 당신은 생각하는 대로 행동합니다.
먼저 질문에 대해 생각하고 주변에 물어본 다음 편집자를 맡을 필요가 있습니다.
프로그래밍에서 가장 쉬운 것이 코드를 입력하는 것이라는 사실을 알고 계십니까? 그리고 개발의 가장 큰 부분은 논리에 대한 생각에 있습니다.
말도 안되는 비유네요. 이 경우 모든 변수, 클래스 객체 등이 됩니다. 필요에 따라 생성하거나 그래프로 만들 수 있는 대신 전역으로 만듭니다. 물체는 다른 무엇입니까(확실히 낚싯대나 그물이 아닙니다 :))? 따라서 내 접근 방식은 매우 합리적이고 정당합니다. mql 또는 메타 트레이더가 망쳐 놓는 것뿐입니다.
이것은 신호를 전달할 것입니다
내가 바보이거나 아니면 다 똑같아, 미결 주문이 있고 신호가 있고 막대가 이미 새롭다면 조건이 없습니다.
신호가 막대의 배수보다 길면 막대의 첫 번째 눈금에서 작동합니다.
유일한 질문은 신호가 나타나는 순간 또는 다음 막대의 첫 번째 눈금에 주문을 개설할 때입니다.내가 바보이거나 아니면 다 똑같아, 미결 주문이 있고 신호가 있고 막대가 이미 새롭다면 조건이 없습니다.
신호가 막대의 배수보다 길면 막대의 첫 번째 눈금에서 작동합니다.
유일한 질문은 신호가 나타나는 순간 또는 다음 막대의 첫 번째 눈금에 주문을 개설할 때입니다.이제 코드는 다음과 같습니다.
열기 전에 이 양초에 열린 위치가 있는지 확인하십시오. 그렇지 않은 경우 엽니다.
원칙적으로 열린 주문은 일반적으로 이미 열린 바의 틱에서 닫힙니다. MakarFX와 Artyom이 올바르게 인식했습니다. 따라서 다음과 같이 하는 것이 옳습니다.
기본적으로 열려 있는 주문은 일반적으로 이미 열려 있는 바의 눈금에서 닫힙니다. MakarFX와 Artyom이 올바르게 인식했습니다. 따라서 다음과 같이 하는 것이 옳습니다.
Artem이 맞습니다, 그래야 합니다
Artem이 맞아, 그래야 한다
여기에서 결과는 동일할 것입니다. 코드만 더 혼란스럽습니다. 두 개의 다른 기능에서 동일한 코드를 작성하고 있습니다. 그리고 가독성이 떨어집니다. 비록 모든 사람들이 자신이 좋아하거나 좋아하는대로 씁니다 ...
모두가 무언가에 대해 보상을 받았습니다.
오픈 포지션에는 오픈 시간이 있습니다. 개장 시간은 양초의 시간과 비교할 수 있습니다 - 포지션의 개장 시간이 양초 내부에 있는지 확인하십시오(이것이 현재 양초임)
그리고 왜 모든 예에서 주문 수를 지속적으로 확인합니까? 그리고 주문이 0이면 엽니다. 이것은 가능성을 크게 제한합니다.
일반적으로 주문/포지션의 수에 묶이는 것은 전략의 매우 좁은 방향을 위한 것입니다.
여기에서 결과는 동일할 것입니다. 코드만 더 혼란스럽습니다. 두 개의 다른 기능에서 동일한 코드를 작성하고 있습니다. 그리고 가독성이 떨어집니다. 비록 모든 사람이 자신이 좋아하거나 좋아하는대로 씁니다 ...
당신의 코드
(바가 오픈되어 주문이 없습니다)
신호 확인 - 신호 없음
... 다음 바를 기다리는 중
지난번과 같은 실수를 저질렀다
추신
이것
주문을 연 후에 실행해야 합니다.Artem이 맞아, 그래야 한다
코드에서 하나의 열린 위치에서 다른 위치는 반대 신호에서 열리지 않습니다. 즉, 먼저 시그널이 도착하면 반대 포지션이 있는지 확인하고 닫아야 합니다.
그러나 반복합니다. 이 모든 것이 전략을 개선할 가능성을 크게 제한합니다.
주문의 유무에 묶이는 것에서 벗어날 필요가 있습니다.
아니요, 유형별 주문 수와 위치를 파악하는 것이 정확하고 필요합니다. 그러나 명령이 없을 때만 신호에 의존하는 것은 그런 것입니다 ...
일반적으로 주문과 포지션을 카운팅하는 기능(주문과 포지션의 개수가 변경될 때 구조를 채우는 기능), 포지션을 오픈/클로징하는 기능, 주문을 위한 기능 및 시그널 기능을 갖는 것이 맞습니다. 다양한 트롤의 기능과 지표에서 데이터 수신. 플러스 - 위치 데이터(열림 또는 닫힘)를 모든 값과 비교할 수 있습니다.
이 세트에서 어떤 전략이든 만들 수 있습니다.